2 回答
TA贡献2039条经验 获得超8个赞
您可以从 获取属性名称Object.keys数组,或从 获取数组[name, value]数组Object.entries,具体取决于您要执行的操作。
很难说出你想要什么样的输出作为结果,但是例如,这会返回一个数组数组,其中内部数组是其值为真的属性的名称:
getActiveStatusGroups(results) {
return results.map(entry =>
Object.keys(entry).filter(key => entry[key])
);
}
现场示例:
let results = [
{isAlumnus: true, isScholar: true, isTrustee: false},
{isAlumnus: false, isScholar: true, isTrustee: false},
{isAlumnus: true, isScholar: true, isTrustee: false},
];
function getActiveStatusGroups(results) {
return results.map(entry =>
Object.keys(entry).filter(key => entry[key])
);
}
console.log(getActiveStatusGroups(results));
TA贡献1854条经验 获得超8个赞
JavaScript 中的过滤非常简单
方法名称就在您的标题中,但您未能识别它。使用filter而不是map. 该filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
这是你的代码
let results = [
{name: marc, isAlumnus: true, isScholar: true, isTrustee: false},
{name: franz, isAlumnus: false, isScholar: true, isTrustee: false},
{name: Hugo, isAlumnus: true, isScholar: true, isTrustee: false},
]
getActiveStatusGroups(group) {
// returns the element if the condition is true
return results.filter(result => result[group])
}
就是这样
console.log(getActiveStatusGroups('isAlumnus'))
console.log(getActiveStatusGroups('isScholar'))
console.log(getActiveStatusGroups('isTrustee'))
添加回答
举报
