4 回答
TA贡献1824条经验 获得超8个赞
1,你希望返回什么值? [6,1,2,3,4,5]?
2, 这个递归每调用一次自身,其内部定义了一个自己的 j, 并返回,但是外表并没与接收。
var a = [1, 2, 3, 4, 5, [6, 2, 3, 4]];
var j = [];
function copyarr(obj,target) {
for(var i = 0; i < obj.length; i++) {
if(typeof obj[i] == 'object') {
copyarr(obj[i],target);
} else {
target.indexOf(obj[i]) === -1 && (target[i] = obj[i]);
}
}
}
copyarr(a,j);
console.log(j);
TA贡献1815条经验 获得超13个赞
<script type="text/javascript">
var a = [1, 2, 3, 4, 5, [6, 2, 3, 4]];
function copyarr(obj) {
var j = [];
for(var i = 0; i < obj.length; i++) {
if(typeof obj[i] == 'object') {
j = j.concat(copyarr(obj[i]));//[6, 2, 3, 4]
} else {
j[i] = obj[i];
}
}
return j;
}
var j = copyarr(a);
console.log(j) //
</script>
这样的话就会结果就是原数组
添加回答
举报
