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

93
Vistas
Need JS array negative filter based on another array

I need help on filtering a Javascript array to remove names that DO NOT include at least one of a series of letters listed in a second array. I have tried over and over, using combinations of filter(), and also nested FOR loops. EXAMPLE:

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

The array returned by filter() should be:
nametwo = ["wanda","candy"];

It's simple to explain but I just cannot make it work in code. I've found many examples of filter() on here but none has helped. Thanks!

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

0

Basically the same question here

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

For searching letters inside a string, you should use indexOf function.

If you want one line solution you can do it this way:

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)

And you can do it use two cycles:

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

You could filter with every and check if the name does not contains letters.

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