Javascript 更改我的初始数组
我希望删除数组的前两个元素,并在稍后的代码中同时使用新数组和模型。我的问题是splice()甚至在我的代码中修改了我的arrayModel 这是我的密码Javascript 更改我的初始数组,javascript,arrays,slice,splice,Javascript,Arrays,Slice,Splice,我希望删除数组的前两个元素,并在稍后的代码中同时使用新数组和模型。我的问题是splice()甚至在我的代码中修改了我的arrayModel 这是我的密码 var arrayModel = ['a','b','c','d'] function dontAlterMyModel (arrayModel) { arrayTemp = arrayModel arrayTemp.splice(0, 2) console.log("arrayModel", arrayModel) cons
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#slice
并将新数组存储在新变量中
var arrayModel=['a','b','c','d']
函数dontAlterMyModel(arrayModel){
arrayTemp=arrayModel;
var newArr=arrayTemp.slice(-2);
log(“arrayModel”,arrayModel);
console.log(“arrayTemp”,newArr);
}
dontAlterMyModel(arrayModel)
使用对象分配复制原始数组
arrayTemp = Object.assign([], arrayModel).splice(0,2)
可以在切片中使用负数
var a=['a','b','c','d'];
var b=a.slice(-2);
控制台日志(a,b)代码>我认为你是对的@Andreas。问题不在于这缺少一个解决方案,而是这个人不明白为什么会发生这种情况。