JavaScript实现对象数组筛选:仅保留值为true对象的最短方案
对象数组筛选最短实现
需求是从结构类似const array = [{1: true},{2: false},{3: true},{}.....]的数组里,过滤出所有属性值为true的对象,最短严谨实现如下:
const res = array.filter(o => Object.values(o).includes(true))
实现说明
- 代码长度极短,完全使用JS原生API,无任何额外依赖
- 筛选逻辑严格匹配要求:仅当对象存在属性值**严格等于
true**时才会被保留,属性值为false的对象、空对象都会被自动过滤 - 注意避坑:别为了省字符写
Object.values(o).some(Boolean),这种写法会把1、非空字符串这类所有真值都判定为符合条件,和需求里严格匹配true的规则不符 - 兼容性:所有支持ES2017的环境都能直接运行,覆盖当前绝大多数浏览器、Node.js版本
内容的提问来源于stack exchange,提问作者user19459599
相关产品推荐
相关产品推荐

