jQuery获取多维对象中设置为true的值的数量



我在制作一个小脚本时遇到了问题,我不知道如何完成。我有一个对象,看起来像这样:

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来迭代您的行,并计算settrue:的单元格元素

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。

相关内容

最新更新