【发布时间】:2019-12-12 23:22:18
【问题描述】:
我有一个这样的对象数组:
const arrA = [{a: true}];
然后我像这样创建数组的副本:
const arrB = Array.from(arrA);
但是当我修改 arrB 中对象的值时,arrA 中的值也会被修改。
arrB[0].a = false
// arrB = [{a:false}]
// arrA = [{a:false}] - gets modified also
如何在不修改原始数组的情况下修改克隆数组中的对象值。
【问题讨论】:
-
接下来的问题是:如何克隆一个对象?您的数组不关心其内容,克隆数组不会克隆其中的对象,它只是创建一个引用这些对象的新数组。也许试试
const arrB = Array.from(arrA).map(o => Object.assign({},o));
标签: javascript arrays