Node.js 将javascript对象作为副本分配给新对象

Node.js 将javascript对象作为副本分配给新对象,node.js,object,clone,lodash,javascript-objects,Node.js,Object,Clone,Lodash,Javascript Objects,我在javascript中有这个objectobj.arr数组。 我把它分配给了一个新对象 var obj_arr_new = obj.arr; 问题是当我修改obj\u arr\u new时,obj.arr也会被修改。我不想那样。我如何才能使obj_arr_new成为obj.arr的副本,并且当我修改obj_arr_new时,obj.arr未被触及 我正在使用node.jsv6。我愿意使用node.js模块。有人告诉我洛达斯能胜任这项工作。使用lodash的答案会很有帮助。lodash确实有

我在javascript中有这个object
obj.arr
数组。 我把它分配给了一个新对象

var obj_arr_new = obj.arr;
问题是当我修改
obj\u arr\u new
时,
obj.arr
也会被修改。我不想那样。我如何才能使
obj_arr_new
成为
obj.arr
的副本,并且当我修改
obj_arr_new
时,
obj.arr
未被触及


我正在使用node.jsv6。我愿意使用node.js模块。有人告诉我洛达斯能胜任这项工作。使用lodash的答案会很有帮助。

lodash确实有一个
\uuu0.cloneDeep(value)

var obj_arr_new = _.cloneDeep(obj.arr);
它将递归地克隆“数组、数组缓冲区、布尔值、日期对象、映射、数字、对象对象、正则表达式、集合、字符串、符号和类型化数组”,以便修改克隆的位不会影响原始数组,反之亦然


Lodash确实有一个
\uu.cloneDeep(值)
用于此目的

var obj_arr_new = _.cloneDeep(obj.arr);
它将递归地克隆“数组、数组缓冲区、布尔值、日期对象、映射、数字、对象对象、正则表达式、集合、字符串、符号和类型化数组”,以便修改克隆的位不会影响原始数组,反之亦然


我倾向于使用以下方法创建副本:

var copiedObject = JSON.parse(JSON.stringify(originalObject));

这只适用于JSONable对象,但如果您处理的是字符串、数组等,那么这很好,也就是说,如果您将函数作为要复制的对象的子对象,则不适用。

我倾向于使用以下方法创建副本:

var copiedObject = JSON.parse(JSON.stringify(originalObject));

这只适用于JSONable对象,但如果您处理的是字符串、数组等,那么这很好,也就是说,如果您将函数作为要复制的对象的子对象,则不适用。

您做过任何研究吗?关于这一点已经有很多问题了,lodash的文档已经在线。可能是我的副本,但lodash中有一些方法似乎符合要求,但我不知道具体是哪一种。对不起,我很慢。你做过调查吗?关于这一点已经有很多问题了,lodash的文档已经在线。可能是我的副本,但lodash中有一些方法似乎符合要求,但我不知道具体是哪一种。对不起,我很慢。