有条件地链接数组方法

时间:2018-05-05 00:24:03

标签: javascript

如何使数组方法可选?

Leets说我有这段代码,但我想要filtermap可选

const ages = data
  .filter(isDog)
  .map(dogYears)
  .reduce(sum);

所以我会做类似

的事情
let result

if(useFilter) {
  result = data.filter(isDog)
}

result
  .map(dogYears)
  .reduce(sum);

我知道应该有一种更紧凑,更实用的方法

1 个答案:

答案 0 :(得分:6)

您可以使用三元运算符在一行中有条件地转换初始数组,而无需任何重新分配:

// const result = [ ... ]

const output = (useFilter ? result.filter(isDog) : result)
  .map(dogYears)
  .reduce(sum);