Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 条件链式数组方法_Javascript - Fatal编程技术网

Javascript 条件链式数组方法

Javascript 条件链式数组方法,javascript,Javascript,如何使数组方法成为可选的 Leets说我有这个代码,但我想过滤或映射可选 const ages = data .filter(isDog) .map(dogYears) .reduce(sum); 所以我会做一些类似的事情 let result if(useFilter) { result = data.filter(isDog) } result .map(dogYears) .reduce(sum); 我知道应该有一种更紧凑、更可靠的方法,可以使用三元运算符在

如何使数组方法成为可选的

Leets说我有这个代码,但我想
过滤
映射
可选

const ages = data
  .filter(isDog)
  .map(dogYears)
  .reduce(sum);
所以我会做一些类似的事情

let result

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

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

我知道应该有一种更紧凑、更可靠的方法,可以使用三元运算符在一行中有条件地变换初始数组,而无需任何重新分配:

// const result = [ ... ]

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

.filter(x=>useFilter?isDog(x):true)
取决于您对性能的关注程度。使用
if()