【问题标题】:JS - Removing duplicate object in an array using lodash [duplicate]JS - 使用 lodash [重复] 删除数组中的重复对象
【发布时间】:2018-08-28 06:05:46
【问题描述】:

例如我有这个数组:

0: {myfield: "1f974a20-aa59-11e8-9653-ab3419ed3bc9", order: 0, value: ""}
1: {myfield: "1f974a20-aa59-11e8-9666-ab3419ed3bc9", order: 0, value: ""}
2: {myfield: "1f974a20-aa59-11e8-9653-ab3419ed3bc9", order: 0, value: "One"}
3: {myfield: "af7401a0-aa6e-11e8-9653-ab3419ed3bc9", order: 1, value: "Two"}

我希望能够遍历它并弹出/删除旧版本的重复数组,在此示例中,我想保留 Object 2 和 pop/remove Object 0因为他们都有完全相同的myfield

是否可以使用 lodash 做到这一点?

【问题讨论】:

    标签: javascript reactjs loops


    【解决方案1】:

    您可以使用_.uniqBy()

    let arr = [ {myfield: "1f974a20-aa59-11e8-9653-ab3419ed3bc9", order: 0, value: ""}, {myfield: "1f974a20-aa59-11e8-9666-ab3419ed3bc9", order: 0, value: ""}, {myfield: "1f974a20-aa59-11e8-9653-ab3419ed3bc9", order: 0, value: "One"}, {myfield: "af7401a0-aa6e-11e8-9653-ab3419ed3bc9", order: 1, value: "Two"}];
    
    let result = _.uniqBy(arr, 'myfield');
    

    【讨论】:

      【解决方案2】:

      尝试使用isEqualuniqWith 方法对对象数组进行深度等效。

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

      这里是文档的链接:https://lodash.com/docs/4.17.10#uniqWith

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-22
        • 2021-08-26
        • 2012-11-24
        • 1970-01-01
        • 2017-04-10
        • 2021-08-10
        • 1970-01-01
        相关资源
        最近更新 更多