Javascript - 计算具有值的数组对象

Joh*_*ohn 2 javascript arrays count

我得到一个数组返回给我,我需要计算其中有值的行

我试过调用arr.length,但这给了我数组的总长度

var arr = [
  { id: '1', '': '' },
  { id: '2', '': '' },
  { id: '3', '': '' },
  { id: '4', '': '' },
  { id: '', '': '' },
  { id: '', '': '' },
  { id: '', '': '' }
]
Run Code Online (Sandbox Code Playgroud)

结果应该是4.

小智 5

使用过滤器仅捕获具有值的键,并返回结果数组的长度.

var arr = [ { id: '1', '': '' },{ id: '2', '': '' },{ id: '3', '': '' },{ id: '4', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' },{ id: '', '': '' } ]

var res = arr.filter(val => {
    return val.id
})
console.log(res.length)
Run Code Online (Sandbox Code Playgroud)

  • 您可以将过滤器简化为这样的`arr.filter(val => val.id)` (3认同)

Wil*_* Jr 1

你可以试试这个:

var count = 0;
for (var x of arr) {
  if (x.id != '') {
    count++;
  }
}
Run Code Online (Sandbox Code Playgroud)

基本上我所做的是循环遍历所有对象,如果它不是空字符串,则对其进行计数。