对象关键帧筛选



如何将对象键传递到true数组中。这样我就可以使用这个数组进行筛选了吗
示例对象:

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 (results) {
let res = [];
res = results.map((item) => {
if (item) {
res.push('isScholar');
}
});
return res;
},
let statusArray = getActiveStatusGroup(this.results)

您可以从Object.keys中获取属性名称的数组,或者从Object.entries中获取[name, value]数组,具体取决于您想要执行的操作。

结果很难判断你想要什么输出,但例如,这会返回一个数组数组,其中内部数组是值为true的属性的名称:

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));

在JavaScript 中过滤非常简单

方法名称就在标题中,但您无法识别它。请使用filter而不是mapfilter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。

这是你的代码

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'))

最新更新