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

如何统计列表中指定属性值非空的对象数量?

如何统计列表中指定属性值非null的对象数量?

嘿,我来帮你搞定这个问题!针对你给出的示例数据,我们可以用几种简洁的JavaScript方法来统计list['value1']里age属性不为null的对象数量,刚好能得到你预期的结果2。

方法一:使用filter() + length(最直观)

这是最容易理解的方式,先通过filter()筛选出符合条件的对象,再取筛选后数组的长度:

var list = {
  'value1':[{'name': 'name1', 'age': null}, {'name': 'name2', 'age': 30}, {'name': 'name3', 'age': 10}],
  'value2':[{'name': 'name11', 'age': 40}, {'name': 'name12', 'age': null}, {'name': 'name13', 'age': 10}]
};

// 统计value1中age非空的对象数量
const validCount = list['value1'].filter(item => item.age !== null).length;
console.log(validCount); // 输出: 2

filter()会创建一个新数组,只保留满足item.age !== null的元素,最后用length拿到这个数组的元素个数,就是我们要的统计数。

方法二:使用reduce()(更高效,无额外数组创建)

如果不想额外创建新数组,可以用reduce()直接累加符合条件的对象数量,性能会更优一点:

const validCount = list['value1'].reduce((total, currentItem) => {
  // 当age不为null时,累加器+1,否则保持原值
  return currentItem.age !== null ? total + 1 : total;
}, 0); // 初始累加值设为0

console.log(validCount); // 输出: 2

额外小提示

如果你的场景中需要同时排除age为undefined的情况,可以把判断条件改成item.age != null(注意是双等号),因为null == undefined,这样就能同时过滤掉null和undefined两种情况啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:17:28