当前位置: 首页 > 知识库问答 >
问题:

Lodash从数组中删除重复项

丁鹏鹍
2023-03-14

这是我的数据:

[
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello-how-are-you',
        id: "23"    
    },
    {
        url: 'www.example.com/i-like-cats',
        id: "24"    
    },
    {
        url: 'www.example.com/i-like-pie',
        id: "25"    
    }
]

使用Lodash,我如何删除具有重复id键的对象?有过滤器,地图和独特的东西,但不太确定。

我的真实数据集要大得多,有更多的键,但概念应该是一样的。

共有3个答案

龙正初
2023-03-14

或者简单地使用联合,用于简单数组。

_.union([1,2,3,3], [3,5])

// [1,2,3,5]
易奇希
2023-03-14

您可以使用lodash方法。uniqWith在lodash 4.17的当前版本中提供。2.

例子:

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

_.uniqWith(objects, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]

更多信息:https://lodash.com/docs/#uniqWith

姬衡
2023-03-14

\。unique不再适用于Lodash 4.0版的当前版本。0具有此突破性更改。的功能。唯一的被拆分为\。uniq,\。sortedUniq\。按和分类。uniqBy。

你可以像这样使用_. uniqBy

_.uniqBy(data, function (e) {
  return e.id;
});

...或者像这样:

_.uniqBy(data, 'id');

文档:https://lodash.com/docs#uniqBy

对于旧版本的Lodash(

假设数据应该由每个对象的id属性唯一,并且数据存储在data变量中,则可以使用\。unique()函数如下:

_.unique(data, function (e) {
  return e.id;
});

或者简单地说:

_.uniq(data, 'id');
 类似资料:
  • 问题内容: 我使用下面的代码行遍历数据库中的一个表: 如果我打印出数组: 我会得到这个: 但是我想摆脱数组中的重复项,所以我使用 我得到下面的奇怪结果,这不是我想要的结果: 理想情况下,我认为它应该返回以下内容: 我该怎么做才能正确处理?我使用了错误的PHP语法/默认功能吗? 问题答案: 该功能将为您完成此操作。您只需要添加标志:

  • 问题内容: 我应该读一个包含许多不同电子邮件地址的文件,并使用数组将它们打印出来。问题是我需要消除重复的电子邮件。 我能够尝试/捕捉并打印出电子邮件地址。但是,我不确定如何删除重复项。我对散列码或如何使用Set尚不了解。任何援助将不胜感激。 这是我到目前为止的内容: 问题答案: 简单的解决方案是使用Set Java, 因此设置自动删除重复值 并且在你的代码中你拥有数组,而不是将转换数组直接使用代码

  • 我有一个问题编码这个: 编写一个名为的静态方法,该方法将整数数组作为输入,并返回一个新的整数数组,其中所有重复项都被删除。例如,如果输入数组具有元素{4,3,3,4,5,2,4},则结果数组应为{4,3,5,2} 这是我目前所做的

  • 假设对象数组如下所示: 如果标签和颜色相同,则会出现重复条目。在这种情况下,id=1和id=5的对象是重复的。 根据注释中的请求,这里是期望的结果:

  • 在mongodb中,我有一个集合,其中数组有重复的条目,如 我需要删除重复的数组,只保留唯一的数组值,如下所示。 最好的方法是什么 谢啦

  • 所以,我有两个多维数组。 数组值示例: 这就是我想要的 我想从组合中获得所有唯一的数组,并用它填充唯一的组合。 我尝试了这个函数,但它只填充了5个数组,真奇怪!