Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

115
Visualizações
Matriz de filtrado con booleano dando resultados inesperados

No puedo entender por qué la salida es 17, solo devuelve los valores verdaderos, no los valores falsos, o que el valor falso también es booleano.

 function countSheeps() { const array1 = [true, true, true, false, true, true, true, true, true, false, true, false, true, false, false, true, true, true, true, true, false, false, true, true] return array1.filter(Boolean).length; }

la salida es 17

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Boolean devuelve true si su argumento es verdadero y false en caso contrario. Array#filter solo mantiene los valores para los que la devolución de llamada devuelve true (o un valor verdadero). Aquí, Boolean es la devolución de llamada y dado que todos los valores en la matriz ya son booleanos, solo se conservan los valores true . Si desea mantener todos los valores que son booleanos primitivos, puede usar typeof en una función de devolución de llamada personalizada.

 const array1 = [true, true, true, false, true, true, true, true , true, false, true, false, true, false, false, true , true, true, true, true , false, false, true, true] console.log(JSON.stringify(array1.filter(Boolean))); console.log([true, true, false, true, false, 1, "test"] .filter(x => typeof x === 'boolean'));

about 4 years ago · Juan Pablo Isaza Relatório

0

Array.prototype.filter() funciona evaluando el valor devuelto que se le da en cada iteración. Se devolverá una nueva matriz, pero solo los valores/iteraciones donde se devolvió un valor verdadero en el bloque. Consulte: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

Ahora eche un vistazo a lo que hace esa función Boolean : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean

Esencialmente, está pasando todos los valores de array1 a filter , y para cada una de esas iteraciones está devolviendo el valor devuelto al llamar a esa función Boolean con el elemento en cuestión. Cuando pasa true a esa función, devuelve true , por lo que ese valor terminará en la matriz devuelta por el método de filter . Cuando pasa false , la función booleana devuelve false en el bloque para filter , lo que significa que el método de filter NO incluirá ese valor en su valor de retorno.

 console.log(Boolean(true)); // This returns true, so all these values from array1 end up in the final array that filter returns.
 console.log(Boolean(false)); // This returns false, which means for that iteration you're returning a falsey value to the filter method, therefore filter will not keep select/keep the element in question.
about 4 years ago · Juan Pablo Isaza Relatório

0

método de matriz de filtro: Filtra la matriz en función de la condición proporcionada en el interior.

 arr = [1,2,3,4,5,6]; arr.filter(ele => ele>3) output: Array(3) [ 4, 5, 6 ]

Boolean: Boolean devuelve verdadero si el valor es verdadero

 Boolean(true) output: true

Y viceversa

 Boolean(false) output: false

Aquí está verificando Boolean (verdadero), en caso de valor verdadero, está contando, pero en caso de falso, está filtrando. Para corregir este escenario, use la verificación de tipos dentro de la función de filtro.

 function countSheeps() { const array1 = [true, true, true, false, true, true, true, true, true, false, true, false, true, false, false, true, true, true, true, true, false, false, true, true] return array1.filter(item => typeof(item)==='boolean').length; }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda