【发布时间】:2021-12-04 12:36:49
【问题描述】:
这个函数有问题,应该和 Lodash _.zip([arrays]) 一样工作
简而言之,zip(['a', 'b'], [1, 2], [true, false]); 应返回 [['a', 1, true], ['b', 2, false]]
我的功能:
function zip(...array) {
const newArr = Array(array[0].length).fill([]);
array.forEach((el, i) => {
el.forEach((item, idx) => {
// newArr[idx][i] = item;
newArr[idx].push(item);
});
});
return newArr;
}
相反,它返回: [ [ 'a', 'b', 1, 2, true, false ], [ 'a', 'b', 1, 2, true, false ] ]
什么地方写错了?
【问题讨论】:
-
在调试器中单步执行代码会显示什么?
-
您正在对数组输入使用展开运算符。这会将数组的每个项目扩展为一个单独的参数。我认为这不是您想要的功能,因为您尝试使用与数组相同的输入。尝试删除扩展运算符
标签: javascript arrays loops foreach