You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更优或更简洁地统计数组中value非空的对象数量?

更优的实现方案

你的需求是统计数组中value属性非空的对象数量,这里有几个更简洁、更符合JS风格的实现方式:

1. 使用filter() + length(最直观)

利用数组的filter方法筛选出value非空的元素,直接取结果数组的长度即可,代码简洁易读:

const requestArr = [{
  "name": "created",
  "value": "2023-01-01"
}, {
  "name": "rm",
  "value": "Test"
}, {
  "name": "st",
  "value": ""
}, {
  "name": "status",
  "value": ""
}, {
  "name": "it",
  "value": ""
}]

const count = requestArr.filter(item => item.value).length;
console.log(count); // 输出2

2. 使用reduce()(性能更优)

如果处理超大数组,reduce会更高效——它不需要创建新数组,直接累加符合条件的数量:

const requestArr = [{
  "name": "created",
  "value": "2023-01-01"
}, {
  "name": "rm",
  "value": "Test"
}, {
  "name": "st",
  "value": ""
}, {
  "name": "status",
  "value": ""
}, {
  "name": "it",
  "value": ""
}]

const count = requestArr.reduce((acc, item) => item.value ? acc + 1 : acc, 0);
console.log(count); // 输出2

优化你的原始循环写法

如果还是想用循环,没必要通过Object.keys遍历索引,直接遍历数组元素更清晰:

let i = 0;
for (const item of requestArr) {
  if (item.value) i++;
}
console.log(i); // 输出2

内容的提问来源于stack exchange,提问作者David Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:17:04