这是我的数据:

[
    {
        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键的对象? 有过滤的,有 map 的,有独一无二的,但不太确定.

我的实际数据集要大得多,并且有更多的密钥,但是概念应该是相同的.

推荐答案

_.unique不再适用于Lodash的当前版本,因为版本4.0.0有this breaking change._.unique的功能分为_.uniq_.sortedUniq_.sortedUniqBy_.uniqBy.

您可以像这样使用_.uniqBy:

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

...或者像这样:

_.uniqBy(data, 'id');

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


For older versions of Lodash (< 4.0.0 ):

假设数据应该由每个对象的id属性唯一化,并且数据存储在data变量中,您可以像这样使用_.unique()函数:

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

或者简单地说:

_.uniq(data, 'id');

Javascript相关问答推荐

我的JS代码将按照哪个序列被解释

如何使用3个部件之间的路由?

更改一组用户创建的项目的js排序标准

在Chart.js 4.4.2中移动到不同大小的容器时,图表不会调整大小

类型错误:tasks.map不是函数(MERN堆栈)

如何比较嵌套对象的更改并创建更改报告

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

TypScript界面中的Infer React子props

通过使用100%间隔时间来代表我们还剩多少时间来倒计时

防止用户在selectizeInput中取消 Select 选项

网页自检测外部元素无法加载

使用JavaScript重新排序行

为什么我的列表直到下一次提交才更新值/onChange

Rehype将hashtag呈现为URL

如何用拉威尔惯性Vue依赖下拉?

编辑文本无响应.onClick(扩展脚本)

ChartJs未呈现

如何在.NET Core中将chtml文件链接到Java脚本文件?

为什么延迟在我的laravel项目中不起作用?

是否设置以JavaScript为背景的画布元素?