[英]JavaScript - Create an array of object keys if the object property has certain value
Given an object with children objects:给定一个带有子对象的 object:
{
a: {
name : 'John'
, isRequired : true
}
, b: {
name : 'Jack'
, isRequired : false
}
, c: {
name : 'Mary'
, isRequired : true
}
, d: {
name : 'Victor'
, isRequired : false
}
};
Generate an array with the keys of the objects where isRequired
is true
:使用
isRequired
为true
的对象的键生成一个数组:
['a', 'c']
One way to do this is:一种方法是:
const data = { a: { name: 'John', isRequired: true }, b: { name: 'Jack', isRequired: false }, c: { name: 'Mary', isRequired: true }, d: { name: 'Victor', isRequired: false } }; let required = []; for (const [key, val] of Object.entries(data)) { if (val.isRequired) { required.push(key); } } console.log(required);
Any better alternative?有更好的选择吗?
I would use filter我会使用过滤器
const data = { a: { name: 'John', isRequired: true }, b: { name: 'Jack', isRequired: false }, c: { name: 'Mary', isRequired: true }, d: { name: 'Victor', isRequired: false } }; let required = Object.keys(data).filter(key => data[key].isRequired) console.log(required);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.