Javascript 有没有办法改进reduce的使用?

Javascript 有没有办法改进reduce的使用?,javascript,Javascript,这是我在应用程序中使用的常见模式 const数据=[{ 身份证号码:1234, 名称:'item1', 条件:正确 }, { 身份证号码:1235, 名称:'item2', 条件:假 }, { id:1236, 名称:“项目3”, 条件:正确 } ] //筛选到满足条件的对象的ID数组中 const onlyIds=data.reduce((idArr,项)=>{ item.condition&&idArr.push(item.id) 返回idArr; }, []) console.log(仅

这是我在应用程序中使用的常见模式

const数据=[{
身份证号码:1234,
名称:'item1',
条件:正确
},
{
身份证号码:1235,
名称:'item2',
条件:假
},
{
id:1236,
名称:“项目3”,
条件:正确
}
]
//筛选到满足条件的对象的ID数组中
const onlyIds=data.reduce((idArr,项)=>{
item.condition&&idArr.push(item.id)
返回idArr;
}, [])

console.log(仅限yids)您不需要在此处进行缩减

data.filter(({ condition }) => condition).map(({ id }) => id)

使用
过滤器
映射
可以实现同样的效果。我通常使用
reduce
来获取一个结构,例如列表,并将其转换为类似对象的内容。下面是
过滤器
映射

const onlyIds = data
    .filter(f => f.condition)
    .map(f => f.id);

但是,
过滤器
映射
都将迭代数组,因此如果所讨论的数组是海量的,这可能会对性能产生影响。

可能是一个更好的问题,因为我认为可能是这样。这不会在数组上迭代两次吗?尽管过滤器和映射似乎是适合实现所需结果的正确函数,但是,性能如何?PS:我没有拒绝votedYes,它将迭代两次。@NikhilAggarwal-取决于数组的大小和性能。如果所讨论的数组是实际大小,那么不用担心。如果我们谈论的是数百万个元素,那么就要担心了。然而,在我看来,如果我们给出的解决方案比所讨论的尝试有更多的循环/迭代,我们可以将其指定为注释。