如何使用.some()方法查询数组中不同对象的全部属性值(无需指定键名)
解决方法
你可以结合Object.values()方法获取对象的所有属性值,不需要手动指定属性名,配合some方法就能实现需求:
const ageArr = [{tom: 24}, {jack: 20}, {anna: 30}] // 兼容对象存在多个属性的场景 if (ageArr.some(item => Object.values(item).some(val => val > 19))) { console.log('Some of them are older than 19') } // 输出:Some of them are older than 19
逻辑说明
- 外层的
Array.some()遍历数组中的每个对象元素 - 调用
Object.values(对象)可以直接拿到该对象所有属性值组成的数组,无需提前知道属性名 - 内层的
Array.some()遍历属性值数组,只要有一个值满足判断条件,整体就返回true
如果你的使用场景中,数组里的每个对象固定只有1个属性,还可以简化写法:
// 单属性场景简化版 if (ageArr.some(item => Object.values(item)[0] > 19)) { console.log('Some of them are older than 19') }
内容的提问来源于stack exchange,提问作者Hashem Mashem
相关产品推荐
相关产品推荐

