2016-08-07 12 views
0

Ich habe den folgenden Code, der die Array Zahlen ohne den Buchstaben ‚e‘array.prototype.reduce: Pushing String-Wert zu leeren Array innerhalb Pfeil Funktion

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; 
}, []); 

Alles funktioniert gut reduziert. Aber jetzt mag ich den gleichen Code in einer Pfeil-Funktion

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

Aber das funktioniert nicht, weil die reducedArray nicht definiert ist und ich konnte keine Lösung für dieses Problem finden.

+0

Sie es zurückgeben müssen –

+1

'var reduziert = numbers.reduce (((reducedArray, number) => (number.indexOf ('e') === -1 && reducedArray.push (Zahl), reducedArray)), []); ' –

+0

Warum willst du es als Pfeilfunktion, wenn es so viel schwieriger zu lesen ist? –

Antwort

3

Ihr Code funktioniert nicht, weil Sie das Array nicht zurückgeben. Aber Sie sollten filter verwenden statt:

var numbers = ["one", "two", "three", "four", "five", "six", 
 
       "seven", "eight", "nine", "ten", "eleven"]; 
 
var reduced = numbers.filter(number => !number.includes("e")); 
 
console.log(reduced);

Verwandte Themen