js多个数组合并,但有一个数组为空,也要合并进去成为一个对象
时间: 2023-10-20 08:20:41 浏览: 106
可以通过使用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对象即为多个数组合并后的结果,其中空数组不会造成影响。
相关问题
js多个数组合并,但有一个数组为空,合并在一起空数组也成一个对象并合并在一起
可以使用 Array.prototype.concat() 方法将多个数组合并在一起。如果某一个数组为空,则可以直接忽略该数组即可。例如:
```
const arr1 = [1, 2, 3];
const arr2 = [];
const arr3 = [4, 5, 6];
const result = arr1.concat(arr2, arr3);
console.log(result); // [1, 2, 3, 4, 5, 6]
```
在这个例子中,arr2 是一个空数组,但是在使用 concat() 方法时会被直接忽略掉,最终得到的结果是 [1, 2, 3, 4, 5, 6]。
js多个数组合并,但有一个数组为空,不要自动过滤掉
可以使用数组的concat方法来合并多个数组,空数组也可以作为参数传入。例如:
```
let arr1 = [1, 2, 3];
let arr2 = [];
let arr3 = [4, 5, 6];
let result = arr1.concat(arr2, arr3);
console.log(result); // [1, 2, 3, 4, 5, 6]
```
其中,arr1, arr2, arr3 是要合并的数组,concat 方法将它们合并成一个新数组 result,并且不会自动过滤空数组。
阅读全文