1234567891011121314151617181920212223242526272829303132333435363738 |
- import _, { cloneDeep, keyBy, isArray, isString } from "lodash";
- export default function mergeArrByKey(arr1, arr2, keyArr1, keyArr2 = keyArr1) {
- if (!(arr1 && arr2 && keyArr1)) {
- throw new Error("请检查参数");
- }
- if (!(isArray(arr1) && isArray(arr2))) {
- throw new Error("请传入两个数组");
- }
- if (!isString(keyArr1)) {
- throw new Error("键名必须为字符串");
- }
- const newArr = _(cloneDeep(arr1))
- .keyBy(keyArr1)
- .merge(keyBy(arr2, keyArr2))
- .values()
- .value();
- return newArr;
- }
|