收藏
回答

怎么对素组进行有条件去重复?

[

{name:小红,score:97},

{name:小红,score:98}

{name:小明,score:89}

]

用什么函数方法能只保留同名里分数最高的记录,

也就是得到这个:[{name:小红,score:98},{name:小明,score:89}]


最后一次编辑于  08-22
回答关注问题邀请回答
收藏

3 个回答

  • 微盟
    微盟
    08-24

    首先思考下,是去重。那可以考虑map结构。key:value。一个key对应一个value。

    08-24
    有用 1
    回复
  • They Say
    They Say
    08-25

    lodash.uniqBy了解一下

    08-25
    有用
    回复
  • G-STEPS街舞工作室
    G-STEPS街舞工作室
    08-22

    可以用 map 进行去重

    let list = [
      {name:"小红",score:97},
      {name:"小红",score:98},
      {name:"小明",score:89}
    ];
    let map = {};
    for (let user of list) {
      let item = map[user.name];
      if(!item) {
        map[user.name] = user;
      }
      if(map[user.name].score <= user.score){
        // 存储最大的分数
        map[user.name].score = user.score;
      }
    }
    // 最后把map的value拿出来转成数组就行
    


    08-22
    有用
    回复
登录 后发表内容
问题标签