这是我在应用程序中使用的常见模式。
const data = [{
id: 1234,
name: 'item1',
condition: true
},
{
id: 1235,
name: 'item2',
condition: false
},
{
id: 1236,
name: 'item3',
condition: true
}
]
//filters into array of ids of objects that meet condition
const onlyIds = data.reduce((idArr, item) => {
item.condition && idArr.push(item.id)
return idArr;
}, [])
console.log(onlyIds);
我很好奇我是否知道一些优化?
我很好奇的一些优化是易失性,可读性,性能和口才。我一般应该考虑其他优化吗?
答案 0 :(得分:5)
您真的不需要在这里减少
data.filter(({ condition }) => condition).map(({ id }) => id)
答案 1 :(得分:5)
您可以使用filter
和map
达到相同的目的。当我要采用一种结构(例如列表)并将其变成类似对象的对象时,通常会使用reduce
。这是filter
和map
const onlyIds = data
.filter(f => f.condition)
.map(f => f.id);
filter
和map
都将迭代数组,因此,如果所讨论的数组很大,可能会对性能产生影响。