js map循环返回undefined?

image.png
上面代码,如果canSelectItemCategories中的check没有一个为true,我就会接收到一个[undefined]

阅读 11k
3 个回答

此处应当用filter

题主的意图应该是过滤check的item,并且取出item的某个字段吧.用reduce

const newList = list.reduce((pre, item) => item.check ? [...pre, item.xxxid] : pre, [])

未选中的,直接返回上次循环结果,选中的,将当前元素的某个字段加入返回值;

reduce文档

或者方便理解的话.

const newList = list.filter(it => it.check).map(it => it.xxxid)

多几次循环.性能差点

if(item.check) {
    return '111'
} else {
    return '222'
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题