【发布时间】:2014-01-19 04:33:38
【问题描述】:
我正在尝试遍历一个数组,以便对总数进行分组和计数。
例如:
var farm = [['Cats', 3], ['Cats', 4], ['Mice', 2], ['Dogs', 5]];
我想先查看“Cats”,然后将所有 cat 值相加,然后对其他唯一类别重复此过程。
最终的输出是:
Cats (7)
Mice (2)
Dogs (5)
目前,我正在尝试以这种方式完成它,但显然我在某个地方犯了一个新手错误。
var farm = [];
farm.push(['Cats', 3], ['Cats', 4], ['Mice', 2], ['Dogs', 5]);
var animalCounter = function(array){
var list = '';
for(var i = 0; i<array.length; i++){
var animalID = array[i][0];
var animalCount = 0;
for (var x; x<array.length; x++){
if(animalID == array[x][0]){
animalCount += array[x][0] - 1;
}
list += animalID + " (" + animalCount + ")\n";
}
}
alert(list);
}
animalCounter(farm);
【问题讨论】:
-
与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。见Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?。
-
farm无效.... 什么? -
@adeneo 是的,我认为是
['Dogs', 5]:) -
@Pointy - 在代码中它使用了 push(),所以这只是数组呈现方式的一个错字,在实际代码中是正确的。
-
另外我认为发布代码的一个关键问题是“x”迭代变量没有初始化。
标签: javascript arrays sorting multidimensional-array