2 回答

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以從 獲取屬性名稱Object.keys數(shù)組,或從 獲取數(shù)組[name, value]數(shù)組Object.entries,具體取決于您要執(zhí)行的操作。
很難說出你想要什么樣的輸出作為結(jié)果,但是例如,這會(huì)返回一個(gè)數(shù)組數(shù)組,其中內(nèi)部數(shù)組是其值為真的屬性的名稱:
getActiveStatusGroups(results) {
return results.map(entry =>
Object.keys(entry).filter(key => entry[key])
);
}
現(xiàn)場(chǎng)示例:
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貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
JavaScript 中的過濾非常簡(jiǎn)單
方法名稱就在您的標(biāo)題中,但您未能識(shí)別它。使用filter而不是map. 該filter()方法創(chuàng)建一個(gè)新數(shù)組,其中包含通過所提供函數(shù)實(shí)現(xiàn)的測(cè)試的所有元素。
這是你的代碼
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'))
添加回答
舉報(bào)