请帮忙,我不知道我的代码有什么问题。我想创建一个复制数组的函数,例如: 函数重复([1,2,3,4] 答案:[1,2,3,4,1,2,3,4]。
var arr1 = [];
function duplicate(arr){
arr1 = arr;
for(var i = 0;i<arr.length;i++){
arr1.push(arr[i]);
}
return arr1
}
感谢您的帮助
最佳答案
您不能在使用数组的 length
作为循环条件时对其进行迭代,并将其添加到其末尾,因为您将得到无限循环。
Slice克隆它的数组,然后迭代原始数组,然后推送到克隆:
function duplicate(arr){
var temp = arr.slice();
for(var i = 0;i<arr.length;i++){
temp.push(arr[i]);
}
return temp;
}
console.log(duplicate([1, 2, 3, 4]));
更简单的解决方案是 Array#concat数组自身:
function duplicate(arr){
return arr.concat(arr);
}
console.log(duplicate([1, 2, 3, 4]));
关于javascript - 重复函数 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47781726/