function zeroCount(arr){ const zero = arr.filter(el=>{ if(el===0){ return el ; } }); return zero.length ; // but it returns 0. I want it to return 3. } console.log(zeroCount([2,3,0,5,0,2,0]));
9 Réponses :
Vous pouvez utiliser la logique comme suit: de sorte que votre code sera donc p> p> function zeroCount(arr){
return arr.filter(x => x===0).length;
}
console.log(zeroCount([2,3,0,5,0,2,0]));
Pour filtrer, vous devez retourner une valeur booléenne similaire, comme un Truthy ou FALSY valeur.
Une meilleure approche est de compter directement les valeurs zéro. p>
p>
function zeroCount(arr) { return arr.reduce((s, v) => s + !v, 0); } console.log(zeroCount([2, 3, 0, 5, 0, 2, 0]));
Votre fonction doit ressembler à ce p> ou Utilisation de sténographie p> Filtre code> La fonction de rappel doit renvoyer booléen et vous ne manipulez pas le faux cas
Filtre n'ajoutera que l'élément si vous retournez une valeur de "vérité". Actuellement, vous retournez E1, avec IS 0. (c'est une fausseté).
retourne juste vrai à la place. P>
p>
function zeroCount(arr) { const zero = arr.filter(el => { if (el === 0) { return true; } }); return zero.length; // but it returns 0. I want it to return 3. } console.log(zeroCount([2, 3, 0, 5, 0, 2, 0]));
Pour le moment, vous retournez 0 si l'élément est 0. Comment fonctionne le filtre est qu'elles s'attend à une valeur booléenne sur laquelle il devrait conserver l'élément actuel dans la nouvelle matrice.
La partie malchanceuse est que vous " re retournant 0 qui se traduit par false. p>
p>
function zeroCount(arr){ const zero = arr.filter(el=> el === 0); // if the element is 0 then el === 0 will resolve to true and the element will be added to the filer array return zero.length ; // returns 3 } console.log(zeroCount([2,3,0,5,0,2,0]));
function zeroCount(arr){ const zero = arr.filter(el=> el === 0); return zero.length; } console.log(zeroCount([2,3,0,5,0,2,0]));
Vous devez comprendre comment fonctionne le filtre.
La fonction de filtrage choisira ou supprimera des éléments basés sur votre retour true ou false de l'intérieur. P>
Vous retournez el qui est 0. 0 JS est faux. C'est pourquoi votre code ne fonctionne pas. P>
Deux solutions possibles
1) p> 2) p> 3) pour afficher désactivé p>
Le gestionnaire pour la fonction l'approche suivante suppose qu'il n'y a que des chiffres. em> p> p> P> P> P> filtre code> devrait renvoyer un booléen
function zeroCount(arr) {
return arr.reduce((r, el) => r + !el, 0);
}
console.log(zeroCount([2, 3, 0, 5, 0, 2, 0]));
La méthode ci-dessous aide à renvoyer le nombre de valeurs de FALSY dans la matrice.
p>
function zeroCount(arr){ return arr.filter(elem => !elem).length; } console.log(zeroCount([2,3,0,5,0,2,0]));
[2,3,0,5,0,2,0] .Filter (x => x === 0) .length code> ??
Suivez ce lien: Stackoverflow.com/a/6120959/5703304