Javascript array.prototype.reduce:在arrow函数中将字符串值推送到空数组

Javascript array.prototype.reduce:在arrow函数中将字符串值推送到空数组,javascript,arrow-functions,Javascript,Arrow Functions,我有以下代码,可以将数组减少为不带字母“e”的数字 var numbers = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven"]; var reduced = numbers.reduce(function(reducedArray, number) { if (number.toString().indexOf("e") ===

我有以下代码,可以将数组减少为不带字母“e”的数字

var numbers = ["one", "two", "three", "four", "five", "six",
               "seven", "eight", "nine", "ten", "eleven"];
var reduced = numbers.reduce(function(reducedArray, number) { 
  if (number.toString().indexOf("e") === -1) {
    reducedArray.push(number); 
  }
  return reducedArray; 
}, []);
一切正常。但现在我想在arrow函数中使用相同的代码

var reduced = numbers.reduce((reducedArray, number) => {
  if (number.indexOf('e') === -1) {
    reducedArray.push(number);
  }
}, []);

但这不起作用,因为
reducedArray
未定义,我找不到任何解决方案。

您的代码不起作用,因为您没有返回数组。但是您应该使用
过滤器

var number=[“一”、“二”、“三”、“四”、“五”、“六”,
“七”、“八”、“九”、“十”、“十一”];
var reduced=numbers.filter(number=>!number.includes(“e”);

控制台日志(减少)您的代码不工作,因为您没有返回数组。但是您应该使用
过滤器

var number=[“一”、“二”、“三”、“四”、“五”、“六”,
“七”、“八”、“九”、“十”、“十一”];
var reduced=numbers.filter(number=>!number.includes(“e”);

控制台日志(减少)
您需要返回它
var reduced=numbers.reduce((reducedArray,number)=>(number.indexOf('e')===-1&&reducedArray.push(number),reducedArray)),[]为什么你想要它作为一个箭头函数,当它这么难读的时候?@Pranav C Balan谢谢你需要返回它
var reduced=numbers.reduce((reducedArray,number)=>(number.indexOf('e')===-1&&reducedArray.push(number),reducedArray)),[]为什么你想要它作为一个箭头函数,当它这么难读的时候?@Pranav C Balan谢谢你