animals = ['ant', 'bear', 'cat', 'dog', 'elephant', 'cat', 'fox', 'goat', 'cat'];
のような配列が与えられた場合、単語cat
の出現回数を調べるように任命されます。配列に値を追加すると、結果が異なるのはなぜですか?
私は、以下の機能と出力OUTの結果実行できます。
let catCounter = 0;
let result = [];
animals.filter(animal => {
if (animal === 'cat') {
catCounter++;
} result.push(catCounter);
});
console.log(result);
[ 0, 0, 1, 1, 1, 2, 2, 2, 3 ]
を与えます。
私は最終結果3を要求します。これを行うことで希望の結果を得ることができます。console.log(catCounter);
なぜこのようなことが発生するのかを簡単に説明してください。また、自分のタスクを完了するためのより良い方法がある場合は、提供できれば非常に感謝しています。
'はconsole.log(動物。 filter(e => e == 'cat')。length) ' –
console.log(catCounter)? – TinyTheBrontosaurus
VAR catsNum = animals.reduce((カウンタ、項目)=> { 動物=== '猫' &&カウンタ++; 戻りカウンタ; }、0); – Evgeniy