重新实现/重新创建.concat方法,不使用任何内置数组方法



我目前正在做一个挑战,我们必须重新实现各种数组方法,而不使用内置的数组方法。除了concat,我几乎都做过了。使用concat,我们必须确保它返回一个数组,其中包含与参数相关的输入中的每个元素。

function newConcat(...item) {
let newArray = [...item];
return newArray;
}

这在大多数情况下是有效的,但是当它接受数组时,它将它们分开,因此它最终是数组的数组,而不仅仅是一个连接的大数组。

我使用扩展运算符,尊重您的函数参数定义:

function newConcat(...arrays) {
let result = [];
for(let x = 0; x < arrays.length; x++) {
result = [...result, ...arrays[x]]; // using spread
}
return result;
}
console.log(newConcat([1, 2, 3], [4, 5, 6]));

不确定您的挑战是否会接受扩展操作符,因此有一个更简单的代码版本:

function newConcat(...arrays) {
let result = [];
for(let x = 0; x < arrays.length; x++) {
const item = arrays[x];
for(let y = 0; y < item.length; y++) {
result.push(item[y]);
}
}
return result;
}
console.log(newConcat([1, 2, 3], [4, 5, 6]));