Javascript array.prototype.reduce:在arrow函数中将字符串值推送到空数组
我有以下代码,可以将数组减少为不带字母“e”的数字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") ===
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谢谢你