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

125
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 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