JavaScript中的flatMap

96 阅读1分钟

JavaScript Array flatMap()方法首页使用映射函数映射每个元素,然后将其展平为新数组 flatMap 方法不会改变原数组
flatMap 方法等效于 array.map().flat() 有两个数组

let provieveTree = [
  { name: '北京市', children: [{ name: '朝阳区' }] },
  { name: '山西省', children: [{ name: '运城市' }] }
]
let queryProvince = ['北京市', '山西省'])

最终想要获取一个包含所有城市的数组

let cityArr = provieveTree
  .filter(ele => {
    return queryProvince.includes(ele.name)
  })
  .flatMap(ele => ele.children || [])
console.log(cityArr) //[{name:'朝阳区'},{name:'运城市'}]

首先使用 filter 方法筛选出与查询数组中的值匹配的项。然后使用 flatMap 方法将每个匹配项的 children 属性映射到一个新数组