-1

How to get JSON array length efficiently in jquery based on its attribute value.

for example array is:

var arr = [{
    "name":"amit",
    "online":true
},{
    "name":"rohit",
    "online":false
},{
    "name":"kk",
    "online":true
},{
    "name":"mohit",
    "online":true
},];

I want to get online users length i.e where online = true.

Yeldar Kurmangaliyev
  • 33,467
  • 12
  • 59
  • 101
Amit Kumar
  • 754
  • 7
  • 19

3 Answers3

1

You can use .filter

Try like this

console.log(arr.filter(function(x){ return x.online;}).length)

JSFIDDLE

Anik Islam Abhi
  • 25,137
  • 8
  • 58
  • 80
1

try this using jQuery grep

  var arr = [
        {"name":"amit",
        "online":true},
        {"name":"rohit",
        "online":false},
        {"name":"kk",
        "online":true},
        {"name":"mohit",
        "online":true},
    ];

 var data =  jQuery.grep(arr, function(obj) {
     return obj.online == true;
 });

    console.log(data.length)
Osama Jetawe
  • 2,697
  • 6
  • 24
  • 40
0
var arr = [{
    "name":"amit",
    "online":true
},{
    "name":"rohit",
    "online":false
},{
    "name":"kk",
    "online":true
},{
    "name":"mohit",
    "online":true
}];
var count = 0;
for(var i = 0; i < arr.length; i++){
    if(arr[i].online == true){
        count++
    }
}

console.log(count);

Try this way you will get 3

guradio
  • 15,524
  • 4
  • 36
  • 57