繁体   English   中英

Javascript数组计数并将结果添加到变量

[英]Javascript Array count and add result to variable

我有这样一个数组:

var obj = {
    "people": [{
        "id": "100",
        "name": "name 1",
        "desc": "desc 1",
        "class": "a"
    }, {
        "id": "192",
        "name": "name 2",
        "desc": "desc 2",
        "class": "b"
    }, {
        "id": "324",
        "name": "name 3",
        "desc": "desc 3",
        "class": "b"
    }, {
        "id": "324",
        "name": "name 4",
        "desc": "desc 4",
        "class": "a"
    }, {
        "id": "324",
        "name": "name 5",
        "desc": "desc 5",
        "class": "a"
    }]
};

我知道,例如,为了获得类“a”的所有记录,我这样做:

obj.people.filter(function(item) { return item.class === "a" });

但是,如何计算包含“a”类的记录总数?

您可以使用返回数组中的Array#length属性。

count = obj.people.filter(function(item) { return item.class === "a" }).length;

或者使用Array#reduce并添加比较。

count = obj.people.reduce(function (r, item) { return r + +(item.class === "a") }, 0);

只需检查filter返回的数组length

var result = obj.people.filter(function(item) { return item.class === "a" });
console.log( result.length );

或者你可以简单地运行一个循环,告诉你这个计数

var count = 0;
for( var counter = 0; counter < obj.people.length; counter++ )
{
   ( obj.people[ counter ].class === "a" ) && count++;
}
console.log( count );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM