【发布时间】:2017-10-17 20:18:44
【问题描述】:
我正在做一个项目,我有 2 个对象数组,以下是数据可能存在的各种情况。
// Case 1
var arr1=[{id:1,quantity:10}]
var arr2=[{id:1,quantity:10},{id:2,quantity:20}]
// Case 2
var arr1=[]
var arr2=[{id:1,quantity:10},{id:2,quantity:20}]
// Case 3
var arr1=[{id:1,quantity:12}]
var arr2=[{id:1,quantity:10},{id:2,quantity:20}]
// Case 4
var arr1=[{id:1,quantity:10},{id:1,quantity:20}]
var arr2=[{id:1,quantity:10}]
因此,array1 可能是空的,可能有来自 array2 的对象之一或具有不同数量值的 array2 的两个对象。
我想根据 arr2 更新主数组或 arr1,但不想用 arr1=arr2 类型的解决方案完全刷 arr1 和 arr2。 arr1 应该根据 arr2 更新数量,并根据同一事物添加或删除。
【问题讨论】:
-
你能举一个之前/之后的例子吗?
-
代码如何同时更新和添加和删除元素?
-
您能解释一下结果与
arr1 = arr2有何不同吗? -
@trincot 因为我不希望数据来自的 api 替换存储在数组中的所有内容,导致使用数组的视图进入空状态然后再次填充,如果我有上述解决方案会更好
-
我不确定我是否理解:如果数组内容的替换是同步发生的,那么没有时刻视图会看到数组为空。但是,我确实理解为变量分配一个新数组不会影响对前一个数组的现有引用。为了解决这个问题,您需要 mutate 数组(如我的回答中所建议的那样)。
标签: javascript arrays object