我試圖找出一種方法來過濾物件以僅獲取某種型別的屬性。
我的物件看起來像這樣:
analysis: {
cultural1: true,
cultural2: false,
cultural3: true,
cultural4: true,
culturalScore: 75,
environment1: true,
environment2: true,
environment3: true,
environment4: true,
environmentScore: 100,
createdAt: "2021-09-15 11:43:58 -0400",
id: 543,
review: 'Lorem ipsum odor'
}
我想要的是獲取一個僅包含該物件的布爾屬性的陣列。謝謝!
uj5u.com熱心網友回復:
用于Object.entries獲取一key,values對陣列,然后使用typeof.
let analysis = {
cultural1: true,
cultural2: false,
cultural3: true,
cultural4: true,
culturalScore: 75,
environment1: true,
environment2: true,
environment3: true,
environment4: true,
environmentScore: 100,
createdAt: "2021-09-15 11:43:58 -0400",
id: 543,
review: 'Lorem ipsum odor'
}
let result_obj = Object.fromEntries(Object.entries(analysis)
.filter(([k,v]) => typeof(v) === 'boolean'))
console.log(result_obj)
uj5u.com熱心網友回復:
- 使用
Object#keys,獲取屬性串列 - 使用
Array#filter,迭代上面的串列并使用布林值回傳鍵typeof
const analysis = {
cultural1: true,
cultural2: false,
cultural3: true,
cultural4: true,
culturalScore: 75,
environment1: true,
environment2: true,
environment3: true,
environment4: true,
environmentScore: 100,
createdAt: "2021-09-15 11:43:58 -0400",
id: 543,
review: 'Lorem ipsum odor'
};
const keysWithBooleanValues =
Object.keys(analysis)
.filter(k => typeof analysis[k] == "boolean");
console.log(keysWithBooleanValues);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/364770.html
標籤:javascript 数组 目的
