给定以下示例对象:
Object {color: green, total: 0}
Object {color: red, total: 0}
Object {color: blue, total: 0}
Object {color: blue, total: 0}
Object {color: green, total: 0}
如何有效遍历并显示总出现次数的唯一颜色名称?
所需的输出:
green: 2
red: 1
blue: 2
实际输出:
green: 1
red: 1
blue: 1
我遍历矩阵,检查颜色名称是否存在于数组中……如果不存在,则将其添加,然后将实际<span>
值添加到$ spans中。如果名称已经存在于数组中,则我想增加total
该矩阵条目的数量,以便跟踪其发生情况
var colorNames = [];
for (var row = 0; row < 6; row++) {
for (var col = 0; col < 6; col++) {
if (matrixPaths[row][col] == 1) {
if($.inArray(matrix[row][col].data('color'), colorNames) == -1) {
matrix[row][col].data()['total'] += 1;
colorNames.push(matrix[row][col].data('color'));
$spans.push(matrix[row][col]);
}
else {
matrix[row][col].data()['total'] += 1;
}
}
}
}
您的代码似乎不必要地复杂。如果我正确理解了这个问题,则可以使用一个对象:
var count = {}, clr;
for (var i = 0; i < colors.length; i++)
{
clr = colors[i].color;
if ( count.hasOwnProperty(clr) )
count[clr] += 1;
else
count[clr] = 1;
}
colors
对象数组在哪里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句