我需要帮助合并两个数组而不使用任何内置函数的数组(没有concat,push,pop,shift,replace,sort,splice等)
我已经达到了这一点但是我被卡住了。
function addTwoArrays(arr1, arr2){
var merge = [], p;
for(p = 0; p < arr1.length; p++){
merge[arr1[p]] = true;
}
for(p = 0; p < arr2.length; p++){
merge[arr2[p]] = true;
}
return Object.keys(merge);
}
window.alert(addTwoArrays([1,2,3,4],[4,3,2,1]));
返回1,2,3,4 - 而不是1,2,3,4,4,3,2,1
答案 0 :(得分:2)
你只需要循环一次 - 只需将arr1.length作为起始索引并添加到数组中:
function addTwoArrays(arr1, arr2) {
let start = arr1.length;
for (let i = 0; i < arr2.length; i++) {
arr1[start++] = arr2[i];
}
return arr1;
}
console.log(addTwoArrays([1, 2, 3, 4], [4, 3, 2, 1]));
答案 1 :(得分:0)
密钥在JSON对象中是唯一的。因此,Object.keys()将返回每个元素的唯一出现。 相反,试试这个:
function addTwoArrays(arr1, arr2){
var merge = [], p, index = 0;
for(p = 0; p < arr1.length; p++){
merge[index++] = arr1[p];
}
for(p = 0; p < arr2.length; p++){
merge[index++] = arr2[p];
}
return merge;
}
window.alert(addTwoArrays([1,2,3,4],[4,3,2,1]));