【发布时间】:2017-09-14 13:49:25
【问题描述】:
我有 2 个包含 ObjectId 项的数组:array1array2
我想在这两个数组之间创建一个联合。为此我正在运行:
let res = _.union(array1, array2);
但res 包含重复的 ObjectId。
我该如何解决这个问题?
【问题讨论】:
标签: node.js mongoose union lodash
我有 2 个包含 ObjectId 项的数组:array1array2
我想在这两个数组之间创建一个联合。为此我正在运行:
let res = _.union(array1, array2);
但res 包含重复的 ObjectId。
我该如何解决这个问题?
【问题讨论】:
标签: node.js mongoose union lodash
如果您正在查看具有“objectIDs”字符串的两个不同数组,您可以使用concat,然后使用uniq 删除重复项。不要忘记在 Lodash 链的末尾运行 valueOf 来调用它来执行。
以下是一个说明性示例:
let array1 = ['42142141221421d', '9999'];
let array2 = ['s421421412412fef3', '42142141221421d', '1234'];
const res = _(array1)
.concat(array2)
.uniq()
.valueOf();
console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
【讨论】:
您可以尝试使用 _.uniqBy(res, 'ObjectId');这应该删除新 res 数组中的重复 objectId
let newRes = _.uniqBy(res, 'ObjectId');
【讨论】: