我希望删除数组的前两个元素,并在稍后的代码中同时使用新数组和模型。我的问题是splice()甚至在我的代码中更改了我的arrayModel。
这是我的代码
var arrayModel = ['a','b','c','d']
function dontAlterMyModel (arrayModel) {
arrayTemp = arrayModel
arrayTemp.splice(0, 2)
console.log("arrayModel", arrayModel)
console.log("arrayTemp", arrayTemp)
return
}
dontAlterMyModel(arrayModel)
结果如下:
arrayModel [ 'c', 'd' ]
arrayTemp [ 'c', 'd' ]
而我想拥有:
arrayModel [ 'a', 'b', 'c', 'd' ]
arrayTemp [ 'c', 'd' ]
我尝试使用其他方法。
两次使用
shift()
也会改变模型arrayTemp = array.slice(2)
给了我与我想要的相反的东西:[ 'a', 'b']
我应该如何进行?
谢谢你的帮助!
最佳答案
Array#splice
改变原始数组。我建议您使用Array#slice
并将新数组存储在新变量中。
var arrayModel = ['a','b','c','d']
function dontAlterMyModel (arrayModel) {
arrayTemp = arrayModel;
var newArr = arrayTemp.slice(-2);
console.log("arrayModel", arrayModel);
console.log("arrayTemp", newArr);
}
dontAlterMyModel(arrayModel)