gpt4 book ai didi

arrays - 如何在没有引用和 JSON 解析/字符串化的情况下复制 Node 中的数组

转载 作者:太空宇宙 更新时间:2023-11-03 23:53:59 25 4
gpt4 key购买 nike

我想复制一个全局静态数组以将该数组个性化到每个用户 session 。

我尝试使用 concat/slice/[...array] 复制该数组,但每次都需要相同的引用/指针。仅使用 JSON.parse(JSON.stringify(array)) 似乎才有效。

有没有更有效的方法来复制数组/对象/变量而不获取引用/指针

var Array2 = [...Array];

var Array2 = Array.concat();

var Array2 = Array.slice();

dosent work.

var Array = [{
test: 'i am a test'
}]


var Array2 = Array;

Array2.favorite = true;

console.log(Array) //result: test: 'i am a test', favorite: true

var Array3 = JSON.parse(JSON.stringify(Array));

console.log(Array) //result: test: 'i am a test'

最佳答案

您想要做的是 - 克隆数组内容。所以你有几个选择:

  1. 使用lodash
    • var newArr = _.cloneDeep(originalArr)
  2. 如果你确定,你只有简单的对象 - 你可以使用类似的东西:
    • var newArr = originalArr.map(d => Object.assign({}, d))
  3. 如果结构众所周知 - 您可以为该结构编写 cloneFunction,而不是使用您自己的克隆与 originalArr.map(cloneFunction)

关于arrays - 如何在没有引用和 JSON 解析/字符串化的情况下复制 Node 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58242226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com