Wichtige Bearbeitung: Ich kann filter
nicht verwenden - der Zweck ist pädagogisch.Map-Reduce: Wie man in einer Sammlung zählt
Ich habe ein Array, in dem ich die Anzahl seiner Elemente zählen würde, die eine boolean überprüfen, nur map
und reduce
verwenden.
Graf von der Größe des Arrays
Ich schrieb schon etwas, das die Größe des Arrays zählt (dh. Die Anzahl der alle ihrer Elemente), mit reduce
:
const array_numbers = [12, 15, 1, 1]; // Size : 4
console.log(
array_numbers.reduce((acc) => {
return acc + 1;
}, 0)
);
Graf von der Array-Elemente überprüfen eine boolesche Bedingung
Jetzt möchte ich nur die Elemente zählen, die eine boolesche Bedingung überprüfen. Daher muss ich map
vor reduce
verwenden und die Elemente des map
zurückgegebenen Array werden nur die guten Elemente sein.
Also schrieb ich diesen Code, aber es funktioniert nicht ... der Tat, ich null
setzen, wenn ich ein nicht-gut-Element begegnen (und null
als en Element gezählt wird leider).
Hinweis: Hier ist die boolesche Bedingung "ist das Element gerade? (% 2 == 0)".
const array_numbers = [12, 15, 1, 1]; // Size : 4
console.log(
array_numbers.map((current_value) => {
if(current_value % 2 == 0) {
return current_value;
}
return null;
}).reduce((acc) => {
return acc + 1;
}, 0)
);
Sie für 'filter' suchen .... –
ich weiß, aber Ich muss diese Funktion neu erstellen - es ist in der Tat pädagogisch. –
Siehe meine Antwort dann. –