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'))
添加回答
舉報