首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自不同数组的相同元素的和

来自不同数组的相同元素的和
EN

Stack Overflow用户
提问于 2020-06-27 14:17:57
回答 1查看 39关注 0票数 0

我有很多数组。我可以将它们与for循环一起列出,但是,如果这些不同的数组中有相同的元素,我只需要显示每个元素一次。例如;

代码语言:javascript
复制
var array01 = [["Jack","92"],["Tom","74"],["Lily","100"],["Jonah","62"],["Lucy","83"]];
var array02 = [["Tom","94"],["Emma","70"],["Jack","100"],["Arnold","91"],["Kate","53"]];
var array03 = [["Jack","72"],["Tom","84"],["Emma","91"],["Jonah","92"],["Lucy","63"]];
var array04 = [["Emma","88"],["Marshall","82"],["Arnold","68"],["Ted","62"],["Lily","73"]];
var array05 = [["Jonah","87"],["Lucy","86"],["Kate","71"],["Jack","66"],["Lily","93"]];

我想将结果从最高值到最低值排序如下:

杰克: 330

莉莉: 266

汤姆: 252

艾玛: 249

约拿: 241

露西: 232

阿诺德: 159

凯特: 124

马歇尔: 82

泰德: 62

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-27 14:25:56

您可以使用reduce将所有数组合并为一个值,然后应用sort()进行基于score的排序。

代码语言:javascript
复制
var array01 = [["Jack","92"],["Tom","74"],["Lily","100"],["Jonah","62"],["Lucy","83"]];
var array02 = [["Tom","94"],["Emma","70"],["Jack","100"],["Arnold","91"],["Kate","53"]];
var array03 = [["Jack","72"],["Tom","84"],["Emma","91"],["Jonah","92"],["Lucy","63"]];
var array04 = [["Emma","88"],["Marshall","82"],["Arnold","68"],["Ted","62"],["Lily","73"]];
var array05 = [["Jonah","87"],["Lucy","86"],["Kate","71"],["Jack","66"],["Lily","93"]];

var all=[...array01,...array02,...array03,...array04,...array05];

var result = Object.values(all.reduce((acc, [key, val])=>{
    acc[key] = acc[key] || {[key]:0};
    acc[key][key]+=+val;
    return acc;
},{})).sort((a,b)=>Object.values(b)[0]-Object.values(a)[0]);

console.log(result);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62611191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档