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

484
Vistas
Use el operador && con el método filter() en JavaScript

Tengo un bloqueo mental que no me permite avanzar.

Tengo una matriz que ejemplificaré con el siguiente código:

 let cars = [ { brand: "Ford", year: "2012", color: "White", doors: "5", model: "One" }, { brand: "Chevrolet", year: "2021", color: "Red", doors: "5", model: "Two" }, { brand: "Chevrolet", year: "2000", color: "Black", doors: "5", model: "Three" }, { brand: "Citroen", year: "2004", color: "Pink", doors: "3", model: "Four" }, ];

Necesito almacenar en una variable todos aquellos autos que cumplan la condición de tener 5 puertas. Bien,

 let carsWithFiveDoors = cars.filter(({ doors }) => doors == "5");

Pero también necesito que cumpla dos condiciones al mismo tiempo. Para ser más claro, a mi nueva matriz que tiene solo esos autos de 5 puertas, necesito aplicar otro filtro que me permita tener solo esos autos que no son de la marca Chevrolet, ni rojos. El problema surge cuando, por simple lógica, aplico este método a mi arreglo:

 carsWithFiveDoors.filter(({ brand, color }) => brand !== "Chevrolet" && color !== "Red");

El resultado de este filtro es la siguiente matriz:

 let newArrayOfCars = [ { brand: "Ford", year: "2012", color: "White", doors: "5", model: "One", }, { brand: "Toyota", year: "2000", color: "Black", doors: "5", model: "Three", }, { brand: "Citroen", year: "2004", color: "Pink", doors: "3", model: "Four", }, ];

Con ese método lo que logré fue generar un arreglo sin ningún vehículo Chevrolet, pero necesito filtrar aquellos autos que, al mismo tiempo, son rojos y marca Chevrolet .

¿Cómo podría lograr esto? Lo he pensado mucho y creo que ya me he quemado.

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

0

En este caso, debería usar un filtro doble aquí. Use el siguiente código y esto debería resolver su pregunta.

 let newArrayOfCars = cars.filter(({ doors }) => doors == "5").filter(({ brand, color }) => brand !== "Chevrolet" && color !== "Red");

También tenga en cuenta que puede intentar poner las tres condiciones a la vez en un solo filtro usando &&.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Dado que necesita filtrar los automóviles que son de la marca Chevrolet y rojos, debe implementar la siguiente expresión lógica:

 let newArrayOfCars = carsWithFiveDoors.filter(({ brand, color }) => !(brand === "Chevrolet" && color === "Red"));
about 4 years ago · Juan Pablo Isaza Denunciar

0

filter siempre devolverá una nueva matriz; no puede filtrar en una matriz en su lugar. Por lo tanto, necesitará un nuevo filtro en la matriz carsWithFiveDoors para producir una nueva matriz de noRedFiveDoorChevs .

Nota: la salida real no dará como resultado la salida esperada.

 const cars = [ { brand: "Ford", year: "2012", color: "White", doors: "5", model: "One" }, { brand: "Chevrolet", year: "2021", color: "Red", doors: "5", model: "Two" }, { brand: "Chevrolet", year: "2000", color: "Black", doors: "5", model: "Three" }, { brand: "Citroen", year: "2004", color: "Pink", doors: "3", model: "Four" }, ]; const carsWithFiveDoors = cars.filter(({ doors }) => doors === "5"); const noRedFiveDoorChevs = carsWithFiveDoors.filter(({ brand, color }) => { return brand !== "Chevrolet" && color !== "Red" }); console.log(noRedFiveDoorChevs);

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