0
votes

Le filtre Array ne renvoie pas correct pour zéro?

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]));


2 commentaires

[2,3,0,5,0,2,0] .Filter (x => x === 0) .length ??


Suivez ce lien: Stackoverflow.com/a/6120959/5703304


9 Réponses :


0
votes

Vous pouvez utiliser la logique comme suit: xxx pré>

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]));


0 commentaires

2
votes

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]));


0 commentaires

0
votes

Filtre La fonction de rappel doit renvoyer booléen et vous ne manipulez pas le faux cas

Votre fonction doit ressembler à ce xxx

ou Utilisation de sténographie xxx


0 commentaires

0
votes

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]));


0 commentaires

0
votes

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]));


0 commentaires

0
votes

function zeroCount(arr){       
   const zero = arr.filter(el=> el === 0);
   return zero.length;
}

console.log(zeroCount([2,3,0,5,0,2,0]));


0 commentaires

0
votes

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.

Vous retournez el qui est 0. 0 JS est faux. C'est pourquoi votre code ne fonctionne pas.

Deux solutions possibles 1) xxx

2) xxx

3) pour afficher désactivé xxx


0 commentaires

0
votes

Le gestionnaire pour la fonction filtre code> devrait renvoyer un booléen

l'approche suivante suppose qu'il n'y a que des chiffres. em> p>

p> P> P> P>

function zeroCount(arr) {
  return arr.reduce((r, el) => r + !el, 0);
}

console.log(zeroCount([2, 3, 0, 5, 0, 2, 0]));


0 commentaires

0
votes

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]));


0 commentaires