有没有办法改善这种减少使用?

时间:2018-10-11 18:23:33

标签: javascript

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

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);

我很好奇我是否知道一些优化?

我很好奇的一些优化是易失性,可读性,性能和口才。我一般应该考虑其他优化吗?

2 个答案:

答案 0 :(得分:5)

您真的不需要在这里减少

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

答案 1 :(得分:5)

您可以使用filtermap达到相同的目的。当我要采用一种结构(例如列表)并将其变成类似对象的对象时,通常会使用reduce。这是filtermap

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

filtermap都将迭代数组,因此,如果所讨论的数组很大,可能会对性能产生影响。