我有一个函数getActiveProp
:
const getActiveProp = obj => Object.keys(obj).find(k => obj[k].active);
但是现在,我不想找到第一个符合条件的项目,而是想获得所有项目的数组。
我知道我可以简单地做这样的事情,并将它包装在一个函数中:
var arr = ['foo', 'bar', 'baz'];
var arr2 = [];
arr.forEach(k => arr2.push(k));
但我只是想知道是否有一种单行方法可以做到这一点,即在 forEach
方法本身中创建数组,或者使用一些类似的数组方法来做到这一点。可以吗?
最佳答案
使用Array#filter
代替 Array#find
:
let object = {
inactiveProp1: { active: false },
activeProp1: { active: true },
activeProp2: { active: true }
}
const getActiveProps = o => Object.keys(o).filter(k => o[k].active)
console.log(getActiveProps(object))
关于javascript - 收集满足特定条件的所有对象键的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43011586/