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

如何从对象数组中筛选包含数值大于15的对象?

过滤包含数值大于15属性的对象数组

原数组

const names = [
  { name: 'Anna' },
  { num: 27 },
  { name: 'Valeria', age: 20},
  { secondname: 'Wilson' },
  { age: 12, name: 'Max' },
  { weight:'50kg', height: '172cm', name: 'Nick' }
];

需求

创建新数组,包含原数组中任意属性值为数值且大于15的对象。

之前的尝试(仅判断指定属性,无法覆盖所有情况)

const number = arr.filter(a => a.num || a.age > 15);
console.log(number); 

通用解决方案

要实现对所有属性的检查,需要遍历对象的每一个属性值,判断是否存在符合条件的数值。可以结合 filter()、Object.values() 和 some() 方法完成:

const filteredArray = names.filter(obj => {
  // 遍历对象的所有属性值,只要有一个满足条件就保留该对象
  return Object.values(obj).some(value => {
    return typeof value === 'number' && value > 15;
  });
});

console.log(filteredArray);

代码说明

  • filter():遍历原数组,仅保留回调函数返回 true 的对象
  • Object.values(obj):提取当前对象的所有属性值,生成一个数组
  • some():只要数组中存在至少一个元素满足「是数值类型且大于15」的条件,就返回 true,确保对象只要有任意一个符合要求的属性就会被筛选出来

执行后,filteredArray 的结果为:

[
  { num: 27 },
  { name: 'Valeria', age: 20 }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:45:36