【发布时间】:2020-03-12 11:19:35
【问题描述】:
有一个对象数组
const groups = [
{ id: 0, name: "All", selected: false },
{ id: -1, name: "All", selected: true },
{ id: 1, name: "Group1", selected: false },
{ id: 2, name: "Group2", selected: false },
{ id: 3, name: "Group3", selected: false },
{ id: 4, name: "Group4", selected: true }
];
我想用地图从这个对象中提取 id
groups.map(group => group.id > 0 && group.selected ? group.id:null)
但结果将是 [null,null,4,null...] 其实应该是[4]
我知道我可以使用 forEach 和 push 或 map 和 filter 等其他功能,但我会解决使用地图或其他东西进行一次迭代。
【问题讨论】:
-
map() 方法创建一个新数组,其中填充了对调用数组中的每个元素 调用提供的函数的结果。这就是为什么那些不满足条件的字段为空。而是使用 filter
-
@brk 你的意思是没有办法避免在地图中返回值?
-
"我想把这颗钉子钉在墙上。我知道我可以用锤子,但我想用我的鞋子"。你看到问题了吗?您为这项工作使用了错误的工具。为什么你认为你需要专门使用
map?根据以下答案之一,您应该使用filter和map的组合。