JavaScript - 如果对象 属性 具有特定值,则创建对象键数组
JavaScript - Create an array of object keys if the object property has certain value
给定一个包含子对象的对象:
{
a: {
name : 'John'
, isRequired : true
}
, b: {
name : 'Jack'
, isRequired : false
}
, c: {
name : 'Mary'
, isRequired : true
}
, d: {
name : 'Victor'
, isRequired : false
}
};
用 isRequired
为 true
的对象的键生成一个数组:
['a', 'c']
一种方法是:
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);
还有更好的选择吗?
我会使用过滤器
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);
给定一个包含子对象的对象:
{
a: {
name : 'John'
, isRequired : true
}
, b: {
name : 'Jack'
, isRequired : false
}
, c: {
name : 'Mary'
, isRequired : true
}
, d: {
name : 'Victor'
, isRequired : false
}
};
用 isRequired
为 true
的对象的键生成一个数组:
['a', 'c']
一种方法是:
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);
还有更好的选择吗?
我会使用过滤器
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);