我有两个数组:ArrayA和ArrayB.我需要将ArrayA复制到ArrayB(而不是创建引用)并且我一直在使用,.splice(0)但我注意到它似乎从初始数组中删除了元素.
在控制台中,当我运行此代码时:
var ArrayA = [];
var ArrayB = [];
ArrayA.push(1);
ArrayA.push(2);
ArrayB = ArrayA.splice(0);
alert(ArrayA.length);
Run Code Online (Sandbox Code Playgroud)
警报显示0.我做错了什么.splice(0)?
感谢您的见解.
Sir*_*rko 36
您想使用slice()(MDN文档)而不是splice()(MDN文档)!
ArrayB = ArrayA.slice(0);
Run Code Online (Sandbox Code Playgroud)
slice() 保持原始数组不变,只创建一个副本.
splice() 另一方面,只需通过插入或删除元素来修改原始数组.
您正在寻找slice:
var a = [1,2,3,4,5]
,b = a.slice();
//=> a = [1,2,3,4,5], b = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
您可以使用splice,但它会破坏您的原始数组:
var a = [1,2,3,4,5]
,b = a.splice(0);
//=> a = [], b = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15583 次 |
| 最近记录: |