NodeJS(ES-6)-使用最新的对象从对象数组中删除重复项


const contacts = [
{contact: "mobileno", value: "123456789", entered: "03-02-2021"},
{contact: "email", value: "test1@test.com", entered: "03-02-2021"},
{contact: "mobileno", value: "123456789"entered: "03-03-2021"},
{contact: "mobileno", value: "558843721"entered: "03-04-2021"},
{contact: "email", value: "test2@test.com", entered: "03-05-2021"},
{contact: "email", value: "test2@test.com", entered: "03-06-2021"},
]

假设一个对象数组如上所述。我想消除重复项,如果有重复项,请删除输入日期较早的日期。唯一性的基础应该是联系人类型和值。

如果联系人类型、联系人值和输入的日期都相同,请保留索引较低的联系人。上面的正确处理应该是:

const contacts = [
{contact: "email", value: "test1@test.com", entered: "03-02-2021"},
{contact: "mobileno", value: "123456789"entered: "03-03-2021"},
{contact: "mobileno", value: "558843721"entered: "03-04-2021"},
{contact: "email", value: "test2@test.com", entered: "03-05-2021"},
]

Ang建议以最有效的方式做到这一点?感谢

顺便说一下,这里使用的日期格式是:mm/dd/yyyy

我试过在这里查看类似的问题,但没有一个问题符合使用最新日期输入字段的条件。

尝试使用的lodash.uniq

var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];

console.log(_.uniqWith(objects, _.isEqual));
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>

最新更新