用flatMap遍历数组的同时给数组添加多个对象

46 阅读1分钟

需求是:需要将数组sourceList中的每个对象处理为多个对象,然后放在数组resultList中返回。

  • 之前写此类需求时,一般是先遍历数组,然后得到处理的两个对象,再push到新数组中
        let resultList = []
        sourceList.forEach((item) => {
        // 此处也可以push
          resultList = [
            ...resultList,
            { name: 'xxx', value: item.value },
            { name: 'yyy', value: item.value },
            { name: 'zzz', value: item.value },
          ]
        })
        return resultList

  • 使用flatMap可以一遍遍历一遍返回到数组中再拍平
        let resultList = sourceList.flatMap((item) => {
          return [
            { name: 'xxx', value: item.value },
            { name: 'yyy', value: item.value },
            { name: 'zzz', value: item.value },
          ]
        })
  • 对比了下两种方式的区别

image.png