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

117
Vistas
Encontrar elementos de una matriz de objetos en función de un valor de elemento seleccionado en JS

Tengo una matriz como esta:

 var array = [ { name:"string123", value:"this", other: "that" }, { name:"string2", value:"this", other: "that" }, { name:"string12", value:"ths", other: "that" }, ];

Y ahora tengo una cadena como 'string12'. Ahora, con esta cadena, el resultado que quiero es encontrar los elementos que contienen esta cadena, que es como:

 var array = [ { name:"string123", value:"this", other: "that" }, { name:"string12", value:"ths", other: "that" }, ];

Esto es lo que he probado:

 const search = (nameKey, myArray) => { for (var i = 0; i < myArray.length; i++) { var newArr = []; if (myArray[i].name.slice(0, nameKey.length + 1) === nameKey) { newArr.push(myArray[i]); } return newArr; } } var array = [ { name:"string123", value:"this", other: "that" }, { name:"string2", value:"this", other: "that" }, { name:"string12", value:"ths", other: "that" }, ]; var resultObject = search("string12", array); console.log(resultObject);

Pero mi solución es devolver una matriz en blanco. ¿Dónde me estoy equivocando con esto?

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

0

Las siguientes cosas salieron mal en su implementación:

  1. Mover la inicialización fuera del bucle for .
  2. No necesita +1 cuando hace .slice() .
  3. La declaración return newArr debe estar fuera del bucle for .
 const search = (nameKey, myArray) => { var newArr = []; for (var i = 0; i < myArray.length; i++) { if (myArray[i].name.slice(0, nameKey.length) === nameKey) { newArr.push(myArray[i]); } } return newArr; } var array = [ { name:"string123", value:"this", other: "that" }, { name:"string2", value:"this", other: "that" }, { name:"string12", value:"ths", other: "that" }, ]; var resultObject = search("string12", array); console.log(resultObject);
about 4 years ago · Juan Pablo Isaza Denunciar

0

El uso Array#filter y String#includes :

 const arr = [ { name:"string123", value:"this", other: "that" }, { name:"string2", value:"this", other: "that" }, { name:"string12", value:"ths", other: "that" } ]; const res = arr.filter(({ name }) => name.includes('string12')); console.log(res);

Puede usar String#startsWith en lugar de includes si solo necesita verificar si el nombre comienza con la cadena.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podría hacer esto con Array.filter y la función startsWith ( docs ). Si desea verificar la string12 en cualquier parte del name , use includes en lugar de startsWith

 var array = [ { name:"string123", value:"this", other: "that" }, { name:"string2", value:"this", other: "that" }, { name:"string12", value:"ths", other: "that" }, ]; const filtered = array.filter(item => item.name.startsWith("string12")); console.log(filtered);

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