我在制作一个小脚本时遇到了问题,我不知道如何完成。我有一个对象,看起来像这样:
var data =
{
1: {
1: {
team: 0,
set: false
},
2: {
team: 0,
set: false
},
3: {
team: 0,
set: false
}
},
2: {
1: {
team: 0,
set: false
},
2: {
team: 0,
set: false
},
3: {
team: 0,
set: false
}
},
3: {
1: {
team: 0,
set: false
},
2: {
team: 0,
set: false
},
3: {
team: 0,
set: false
}
}
};
现在,第一个1,2和3是行,然后每个行中的其他1,2,3是单元格。现在我需要找出,例如,在给定的行中,有多少集合元素被设置为true。例如:
var data =
{
1: {
1: {
team: 0,
set: false
},
2: {
team: 0,
set: true
},
3: {
team: 0,
set: true
}
}
};
如果我想把它用于第1行,上面应该返回2,因为有2个选项设置为true。
我该怎么做?
您可以简单地使用jQuery.each
来迭代您的行,并计算set
为true
:的单元格元素
function countTrueSetInRow (data, rowNum) {
var count = 0 ;
jQuery.each(data[rowNum], function (i, d) {
if (d.set) { count ++ ; }
});
return count ;
}
function countTrueSetInCol (data, colNum) {
var count = 0 ;
jQuery.each(data, function (i, d) {
if (d[colNum].set) { count ++ ; }
});
return count ;
}
遍历每个元素。在Javascript中,您可以将对象属性作为数组元素进行访问。
function countTrue(data,element){
var count=0;
for (var i in data[element]){
if (data[element][i]["set"])
count++;
}
return count;
}
在您的示例中,countTrue(data,1)
将返回2。