一系列阵列被切片,扩散和地图突变



这个问题在这里提出,更重要的是在这里。我尝试了所有答案,没有解决我的问题。这是非常基本的。

我有以下数组。我的各种复制尝试在拼接后不会持续或执行任何破坏性动作。甚至副本也被突变。我如何复制它,以使原始版本持续存在?

var arrs = [ [ 3 ], [ 7, 4 ], [ 2, 4, 6 ], [ 8, 5, 9, 3 ] ]
var arrsCopy1 = arrs.slice()
var arrsCopy2 = arrs.map(arr => {
  return arr
})
var arrsCopy3 = [...arrs]

//test one of the copies
arrsCopy3.forEach(arr => {
  return arr.splice(0, arr.length)
})
arrs, arrsCopy1, arrsCopy2, arrsCopy3 => [[],[],[],[]]

这是一个小提琴,可以演示我的问题(使用reverse()代替splice

您可以递归地做

const copyArr = (element) => {
    //If the element is a primitive
    if (element !== Object(element)) {
        return element;
    //The element is an array
    } else {
        return element.map(subelement => copyArr(subelement));
    }
}

尝试使用JSON方法:

var arrCopy = JSON.parse(JSON.stringify(arr));

我刚刚找到了这个问题,似乎可以解决问题。

我被扔掉了我的JSON.parse

var clonedArray = JSON.parse(JSON.stringify(originalArray));

相关内容

  • 没有找到相关文章

最新更新