Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

99
Vistas
Necesita filtro negativo de matriz JS basado en otra matriz

Necesito ayuda para filtrar una matriz de Javascript para eliminar nombres que NO incluyan al menos una de una serie de letras enumeradas en una segunda matriz. Lo he intentado una y otra vez, usando combinaciones de filter(), y también bucles FOR anidados. EJEMPLO:

nombre = ["chuck","lina","wanda","denise","reggie","candy"];
letra = ["h","l","z","e"];

La matriz devuelta por filter() debería ser:
nombredos = ["wanda","caramelo"];

Es simple de explicar, pero simplemente no puedo hacer que funcione en el código. He encontrado muchos ejemplos de filter() aquí, pero ninguno me ha ayudado. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Básicamente la misma pregunta aquí

 const name = ["chuck","lina","wanda","denise","reggie","candy"]; const letter = ["h","l","z","e"]; const checker = value => !letter.some(element => value.includes(element)); console.log(name.filter(checker));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Para buscar letras dentro de una cadena, debe usar la función indexOf.

Si desea una solución de una línea, puede hacerlo de esta manera:

 const names = ["chuck","lina","wanda","denise","reggie","candy"]; const letters = ["h","l","z","e"]; const result = names.filter(name => letters.filter(letter => name.indexOf(letter) !== -1).length === 0); console.log(result)

Y puedes hacerlo usando dos ciclos:

 const names = ["chuck","lina","wanda","denise","reggie","candy"]; const letters = ["h","l","z","e"]; const result = []; for (let i = 0; i < names.length; i++) { let isContainLetter = false; for (let j = 0; j < letters.length; j++) { if (names[i].indexOf(letters[j]) !== -1) { isContainLetter = true; break; } } if (!isContainLetter) result.push(names[i]); } console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede filtrar con every y verificar si el nombre no contiene letras.

 const names = ["chuck", "lina", "wanda", "denise", "reggie", "candy"], letters = ["h", "l", "z", "e"], result = names.filter(n => letters.every(l => !n.includes(l))); console.log(result); // ["wanda", "candy"]

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda