当前位置: 首页 > 知识库问答 >
问题:

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

段干庆
2023-03-14

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

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

共有1个答案

郤飞英
2023-03-14

您可以使用reduce将所有数组合并为一来求和值,然后应用sort()根据score进行排序:

null

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);
 类似资料:
  • 我有下面的xml结构: 有不同的 Field(X) 包装器元素,它们包含相同的用户元素。XML 中可以发送 n 个字段。因此,我不能为每个单独的Jaxb。我需要访问用户,但在取消编组步骤后忽略 Field 元素。不幸的是,我无权更改xml结构。我无法找到解决方案。任何指针都会有所帮助。

  • 问题 你想从数组中删除相同元素。 解决方案 Array::unique = -> output = {} output[@[key]] = @[key] for key in [0...@length] value for key, value of output [1,1,2,2,2,3,4,5,6,6,6,"a","a","b","d","b","c"].unique() # =

  • 有太多关于大致相同主题的问题,但我找不到我想要的。如果我错过了,我很抱歉。 我正在尝试散集具有公共逻辑元素但使用不同标记定义的XML文件: 两个<代码> 我可以这样做: 所需要的只是在和中实现并分别返回或。 然而,在中有一个属性并以某种方式告诉JAXB将这两个字段映射到它似乎更简单。 我是不是想多了?你将如何实现它? (当然,我无法控制输入XML。如果可能的话,我还想避免使用MOXy的解决方案,因

  • 您好帮助请把xml文件放在里面一些相同的元素,这些元素的内容不同,“name”属性。这些元素有不同的项目集,如何进行解咒?断续器: 我需要在Cdb和FmssSc中执行对象2的解组。我的尝试:通用元素-ServiceBroker.class 适配器.class Cdb.class FmssSc.class 演示: 错误:

  • 我有一个练习,找出出了什么问题。我会感激的帮助:) 编写将具有两个int类型数组和更大的返回数组(如果两个数组中的一个更大)以及与数组相同位置的元素的总和的代码。

  • 本文向大家介绍详解JS取出两个数组中的不同或相同元素,包括了详解JS取出两个数组中的不同或相同元素的使用技巧和注意事项,需要的朋友参考一下 1、取出两个数组的不同元素 (1)concat() 方法:用于连接两个或多个数组。  该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本,例: (2)Array filter() 方法: 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所

  • 我有一个单词流,我想根据相同元素的出现对它们进行排序。 例如:{hello,world,hello} 至 你好,{你好,你好} 谢谢你

  • 我想给数组的每个元素添加相同的值。我的方法是使用default添加值。它与这个有一点不同,因为:我不知道如何写入数组的现有元素,而不是新元素。 输入: 提前感谢!