小程序
小游戏
企业微信
微信支付
扫描小程序码分享
[
{name:小红,score:97},
{name:小红,score:98}
{name:小明,score:89}
]
用什么函数方法能只保留同名里分数最高的记录,
也就是得到这个:[{name:小红,score:98},{name:小明,score:89}]
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
首先思考下,是去重。那可以考虑map结构。key:value。一个key对应一个value。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
lodash.uniqBy了解一下
可以用 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拿出来转成数组就行
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
首先思考下,是去重。那可以考虑map结构。key:value。一个key对应一个value。
lodash.uniqBy了解一下
可以用 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拿出来转成数组就行