【发布时间】:2021-12-10 16:47:39
【问题描述】:
我有 2 个数组,如下所示:
const array1 = [{name: "1"}, {name: "2"}, {name: "3"}, {name: "4"}, {name: "4"}];
const array2 = [{name: "1"}, {name: "5"}, {name: "3"}, {name: "4"}, {name: "4"}, {name: "4"}, {name: "1"}, {name: "1"}, {name: "2"}];
预期输出是:
[{name: "1"}, {name: "2"}, {name: "3"}, {name: "4"}, {name: "4"}, {name: "5"}, {name: "4"}, {name: "1"}, {name: "1"}];
结果数组应该包含array1的所有元素 以及 array2 中尚未出现在 array1 中的那些元素
我尝试使用_.unionBy
_.unionBy(array1, array2, 'name')
但它只会产生一个带有 uniq 'name' 的数组
我们如何使用 lodash 实现这一点?
【问题讨论】:
-
“结果数组应包含数组 1 的所有元素以及数组 2 中尚未出现在数组 1 序列中的那些元素”并且预期的输出不匹配在一起。
-
您问题中的“预期输出” 与“预期输出” 的描述不匹配 - 为什么会有
name: 1和@ 987654326@ 元素在末尾? -
当相同索引的元素不同时,我认为他想要来自 array1 和 array2 中的所有内容
-
@Andreas array1 包含
{name: "1"}并且 array2 包含{name: "1"}并且因为它存在于 array1 的元素序列中,所以我们将其丢弃。 array2 有 {name: "1"}, {name: "1"}, {name: "2"} 不存在于 array1 的元素序列中(因为我们已经丢弃了匹配的 {name: "1"})我会详细描述 -
为什么最后一项有
{ name: "2" }?
标签: javascript arrays lodash