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

233
Visualizações
comprender el motivo del comportamiento diferente en .every() y .some()

Me gusta usar .every() y .some() en javascript y encontré una diferencia en su comportamiento y no vi una explicación de por qué en MDN. Según MDN, si ejecuta .every() en una matriz vacía, el resultado es verdadero porque en matemáticas todos los elementos del conjunto vacío coincidirán con una condición. Pero .some() devolverá falso cuando se ejecute en una matriz vacía.

 const myArray = []; const ev = myArray.every( elem => { elem === 'this is foobared'; }); const so = myArray.some( elem => { elem === 'this is foobared'; }); // ev is true // so is false

Soy un oso de muy poco cerebro, pero parece que si cada elemento del conjunto vacío coincide con la condición, entonces algunos de los elementos coinciden con la condición porque si todos los elementos coinciden, .some() será verdadero.

 const myArray = [1, 2, 3, 4]; const ev = myArray.every( elem => { return elem < 10; }); const so = myArray.some( elem => { return elem < 10; }); // ev is true // so is true

¿Hay alguna lógica detrás de esto?

Gracias por cualquier explicación.

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

0

La razón de esto es que permite que la propiedad asociativa de estas operaciones funcione correctamente.

Esta propiedad requiere las siguientes equivalencias:

 array1.every(condition) && array2.every(condition) == array1.concat(array2).every(condition); array1.some(condition) || array2.some(condition) == array1.concat(array2).some(condition);

Reemplace array2 con una matriz vacía, y verá que definir [].every(condition) como true y [].some(condition) como false garantizará que se logren las equivalencias en los casos límite.

Esto es similar a la forma en que true es el valor de identidad para el operador && y false es la identidad para || operador.

about 4 years ago · Juan Pablo Isaza Relatório

0

algunos (cualquiera) frente a todos (todos): diferencia básica

Fácilmente puedes memorizar every es [Y &&] y
some son [O ||]
déjame mostrarte un ejemplo de matriz de objetos.

Puede leer ¿Cuál es la diferencia entre los métodos every() y some()?

 // Example let users = [ {id:1, type: 'student'}, {id: 2, type: 'student'} ]; let isEveryStudent = users.every(user => user.type === 'student'); console.log('isEveryStudent', isEveryStudent); // ```isEveryStudent``` is true because All users are student users = [ {id:1, type: 'student'}, {id: 2, type: 'officer'} ]; isEveryStudent = users.every(user => user.type === 'student'); console.log('isEveryStudent', isEveryStudent); // ```isEveryStudent``` is false because one of the user is officer users = [ {id:1, type: 'student'}, {id: 2, type: 'officer'} ]; const isSomeOfficer = users.some(user => user.type === 'officer'); console.log('isSomeOfficer', isSomeOfficer); // ```isSomeOfficer``` is true because one of the user is officer

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