Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery数组按多个元素分组并查找总数_Javascript_Jquery_Arrays_Grouping - Fatal编程技术网

Javascript Jquery数组按多个元素分组并查找总数

Javascript Jquery数组按多个元素分组并查找总数,javascript,jquery,arrays,grouping,Javascript,Jquery,Arrays,Grouping,我有这样一个数组: abcArr = [["A", "dog", 10], ["B", "cat", 20], ["A", "dog", 30],["C", "pig", 40]] ["A", "cat", 30], ["B", "cat", 20], ["A", "horse", 10]; [["A", "dog", 40], ["B", "cat", 40], ["C", "pig", 40]] ["A", "cat", 30], ["A", "horse", 10]; 我正在看这篇文

我有这样一个数组:

abcArr = [["A", "dog", 10], ["B", "cat", 20], ["A", "dog", 30],["C", "pig", 40]] ["A", "cat", 30],  ["B", "cat", 20], ["A", "horse", 10];
[["A", "dog", 40], ["B", "cat", 40], ["C", "pig", 40]] ["A", "cat", 30], ["A", "horse", 10];
我正在看这篇文章(),我需要一些类似的东西来解决我的问题,但我需要根据2个元素对数组进行分组

所以我的答案应该是这样的:

abcArr = [["A", "dog", 10], ["B", "cat", 20], ["A", "dog", 30],["C", "pig", 40]] ["A", "cat", 30],  ["B", "cat", 20], ["A", "horse", 10];
[["A", "dog", 40], ["B", "cat", 40], ["C", "pig", 40]] ["A", "cat", 30], ["A", "horse", 10];
我尝试了@jfriend00的
.each()
方法,只对一个字段进行分组,但我不知道如何调整它以使用两个字段对上面的数据进行分组

abcArr=[[“A”,10],“B”,20],“A”,30],“C”,40];
var items={},
基础、关键;
$。每个(abcArr,函数(索引,val){
key=val[0];
如果(!项[键]){
项目[键]=0;
}
项目[key]+=val[1];
});
var outputArr=[];
$。每个(项目、功能(键、val){
outputArr.push([key,val]);
});
日志(outputArr)

您可以做的是,您可以组合多个键,而不是将一个字段用作
对象的键,如下所示:

注意-jQuery并不是解决这个问题所必需的,因为JavaScript具有内置的方便和功能

var abcArr=[“A”,“狗”,10],“B”,“猫”,20],“A”,“狗”,30],“C”,“猪”,40],“A”,“猫”,30],“B”,“猫”,20],“A”,“马”,10];
//按字母动物对项目进行分组,并对结果进行汇总
var items=abcArr.reduce(函数(结果,当前){
var字母=当前[0];
var动物=电流[1];
var值=电流[2];
//将这两个字段合并为要匹配的键..这就是神奇发生的地方
变量键=字母+“-”+动物;
如果(!结果[键]){
结果[关键]=0;
}
结果[键]+=值;
返回结果;
}, {});
//将带连字符的表单中的键拆分为带值的单个数组元素
var outputArr=Object.key(items).map(function(key){
var splitKey=key.split(“”);
变量字母=拆分键[0];
var-animal=splitKey[1];
var itemValue=项目[关键];
返回[字母、动物、项目值];
});

日志(outputArr)@NewBee你能在你的帖子里加入代码吗?我试过@friend00。每种方法。文章中包含了代码。上面示例中的abcArr与runnable snipplet中的不匹配。@新手看一下我的解决方案,看看这是否就是您想要的for@Taplar工作示例仅按1字段分组,OP的新用例需要按2个字段分组,并且不知道如何弥合工作解决方案和他们需要的之间的差距。