js多个数组合并,但有一个数组为空,也要合并进去成为一个对象
时间: 2023-10-20 10:20:41 浏览: 101
js 将多个对象合并成一个对象 assign方法的实现
5星 · 资源好评率100%
可以通过使用reduce方法和判断数组是否为空来实现多个数组合并成一个对象,如下所示:
```
const arr1 = [1, 2, 3];
const arr2 = [];
const arr3 = [4, 5, 6];
const result = [arr1, arr2, arr3].reduce((acc, cur) => {
if (cur.length) {
acc = {
...acc,
...cur.reduce((acc2, cur2, index) => {
return {
...acc2,
[`${index}-${cur2}`]: cur2,
};
}, {}),
};
}
return acc;
}, {});
console.log(result); // { '0-1': 1, '1-2': 2, '2-3': 3, '0-4': 4, '1-5': 5, '2-6': 6 }
```
这里先判断当前数组是否为空,如果不为空则使用reduce方法将数组转成一个对象,然后使用展开语法将其合并到之前的累加器acc中。最终得到的result对象即为多个数组合并后的结果,其中空数组不会造成影响。
阅读全文