数组的JavaScript复制[重复]

问题描述 投票:0回答:1

我正在尝试从下面的数组中消除最小值和最大值,并创建两个没有最大值和最小值的新数组

array = [4, 6, 7, 8, 9]
const indOmin = 0,
  indOm = 5

minArr = arr
maxArr = arr

minArr.forEach(cur => {
  if (arr.indexOf(cur) === indOmin) {
    minArr.splice(indOmin, 1)
  }
})

maxArr.forEach(cur => {
  if (arr.indexOf(cur) === indOm) {
    maxArr.splice(indOm, 1)
  }
})

我使用时...

console.log(minArr)
console.log(maxArr)

...然后在两种情况下都返回[6, 7, 8, 9]

但是代替...

minArr = arr
maxArr = arr

......如果我使用...

minArr = arr.map(cur => cur = cur)
maxArr = arr.map(cur => cur = cur)

...然后数组返回期望值。

[6, 7, 8, 9]
[4, 6, 7, 8]

[请帮助我了解为什么当我显式使用=运算符(minArr = arr)时为何不起作用。

javascript arrays
1个回答
0
投票

更改

minArr=arr; maxArr=arr;

收件人

minArr=[...arr]; maxArr=[...arr];

这不起作用,因为数组不能用=复制,您在minarr和maxarr中都引用了相同的数组。

© www.soinside.com 2019 - 2024. All rights reserved.