Javascript 更改我的初始数组

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

我希望删除数组的前两个元素,并在稍后的代码中同时使用新数组和模型。我的问题是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#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。问题不在于这缺少一个解决方案,而是这个人不明白为什么会发生这种情况。