[英]How to filter and map an array?
我有這個需要過濾的 object。
let data = JSON.parse(this.getDataFromArray).map((x: any) => x.isEnabled === true);
我只需要在“數據”中獲取“isEnabled”為真的值的 ID。
使用Array.prototype.flatMap
來實現結果。
const dataArray = [ { id: 1, name: "Alice", isEnabled: false }, { id: 2, name: "Bob", isEnabled: true }, { id: 3, name: "Charlie", isEnabled: true }, { id: 4, name: "Dave", isEnabled: true }, { id: 5, name: "Eve", isEnabled: false }, { id: 6, name: "Frank", isEnabled: false }, ]; let data = dataArray.flatMap(elm => elm.isEnabled? [elm.id]: []); console.log(data);
請注意,如果沒有 polyfill,則無法在 IE 中使用flatMap
。
如果需要 IE 支持,請使用Array.prototype.forEach
const dataArray = [ { id: 1, name: "Alice", isEnabled: false }, { id: 2, name: "Bob", isEnabled: true }, { id: 3, name: "Charlie", isEnabled: true }, { id: 4, name: "Dave", isEnabled: true }, { id: 5, name: "Eve", isEnabled: false }, { id: 6, name: "Frank", isEnabled: false }, ]; let data = []; dataArray.forEach((elm) => { if (elm.isEnabled) { data.push(elm.id); } }); console.log(data);
const array = [{ id: 1, isEnabled: true }, { id: 2, isEnabled: false }, ] let data = array.filter( ({isEnabled}) =>.;isEnabled).map(({id}) => id); console.log(data)
此外,您可以在下面使用正確的類型而不是any
const data = JSON.parse(this.getDataFromArray)
.filter(({ isEnabled }: { isEnabled: boolean }) => !!isEnabled)
.map(({ id }: { id: string }) => id);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.