【发布时间】:2022-01-15 07:43:57
【问题描述】:
我有一个表已经填充了来自 API 的数据集。对于演示,假设我已经在从 API 获取的表上添加了 2 行。现在,我编辑了第二行也添加了另一行。所以我想要实现的是我想要获得一个新的对象数组,其中包含我刚刚编辑的行以及我刚刚添加的行。
以下是我拥有的 2 个带有虚拟数据集的数组。
第一个数组:
[
{ id: '38sj3-23', user: { id: 21323 }, count: { start: 12, end: 24 }, point: 56 },
{ id: '38sj3-23', user: { id: 21323 }, count: { start: 8, end: 36 }, point: 49 },
]
第二个数组:
[
{ id: '38sj3-23', user: { id: 21323 }, count: { start: 12, end: 24 }, point: 56 },
{ id: '38sj3-23', user: { id: 21323 }, count: { start: 36, end: 97 }, point: 15 },
{ id: null, count: { start: 123, end: 2135 }, point: 323 },
]
请注意,我编辑了 Second Array 中的第二行值。第二个数组的第三行没有用户 ID,因为userId 发布后会从服务器返回
预期输出:
[
{ id: '38sj3-23', user: { id: 21323 }, count: { start: 36, end: 97 }, point: 15 },
{ id: null, count: { start: 123, end: 2135 }, point: 323 },
]
我试过 lodash _.differencWith / _.intersectWith 但使用它的输出如下所示
[
{ id: null, count: { start: 123, end: 2135 }, point: 323 },
]
只返回表中新添加的行,但忽略了我也更改了第二行的值。
注意:该表只有 3 列,所有列都是可编辑的。 coun: { start, end} 和 point
【问题讨论】:
-
你试过了吗:
_.differenceWith(x, y, _.isEqual)?其中 x,y 是 2 个数组 -
@Mani 是的
_.differenceWith(second, first, _.isEqual)。我试过这样。 -
我从那个函数得到了预期的输出,你能检查解决方案并从那个解决方案运行。
标签: javascript arrays object lodash