【发布时间】:2017-10-15 22:06:18
【问题描述】:
这里是新手
我最近在使用 array.splice 方法从列表中删除元素时遇到了一个问题。代码类似这样
var A = [0,1,2,3,4,5];
var B = A;
B.splice(3,1)
console.log(B) //returns [ 0, 1, 2, 4, 5 ]
console.log(A) //returns [ 0, 1, 2, 4, 5 ]
不知何故,拼接 B 也拼接了 A。
我尝试创建自己的函数来删除一个元素。同样的问题。
var deleteElement = function(array,index){
var array2=array;
for(i=index;i<array2.length;i++){
array2[i]=array2[i+1]
}
array2.pop();
return array2;
}
var A = [ 0, 1, 2, 3, 4, 5, 6, 7 ]
var B = deleteElement(A,4)
console.log(A) //returns [ 0, 1, 2, 3, 5, 6, 7 ]
console.log(B) //returns [ 0, 1, 2, 3, 5, 6, 7 ]
我不知道为什么通过改变 B 来改变 A。任何帮助将不胜感激。
【问题讨论】:
-
因为
B = A所以B === A:查找对象引用。
标签: javascript arrays