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

190
Visualizações
¿Cómo puedo guardar datos en diferentes arreglos dependiendo de características específicas?

Tengo una matriz con más de 50 entradas en forma de objetos, que me gustaría guardar según el ID del elemento para poder aplicarles ciertos cálculos. Por ejemplo, me gustaría sumar la hora de todas las entradas con el Id. de artículo "Las5241Wz".


Dado que la matriz puede cambiar dinámicamente, no puedo analizarla manualmente. ¿Cómo puedo separar los datos de antemano de acuerdo con su ID de elemento y colocarlos en nuevas matrices? El Array real contiene hasta 16 objetos con la misma ID.

 var data= [] data = [ //...objects { itemId: "Las5241Wz", time: 10 }, { itemId:"Bos1239Zf", time: 11 }, { itemId:"Las5241Wz", time: 15 }, { itemId:"Bos1239Zf", time: 21 } //...more objets ]

La solución para esto debería verse así:

 var Item1 = [ { itemId: "Las5241Wz", time: 10 }, { itemId:"Las5241Wz", time: 15 }, ] var Item2 = [ { itemId:"Bos1239Zf", time: 11 }, { itemId:"Bos1239Zf", time: 21 } ]
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

A menos que tenga una razón de rendimiento para mantener las listas por separado, la respuesta es que puede almacenar la lista de ID como un Set y usar array.filter cuando desee obtener la lista que es solo para esa ID.

 Set s = new Set(); for (let i = 0; i < data.length; i++) { s.add(data[i].itemId); } var createFilterFunc(id) { return function(elem) { return elem.itemId == id; } } var items = data.filter (createFilterFunc("Las5241Wz"));
about 4 years ago · Juan Pablo Isaza Relatório

0

Aquí hay otra solución que crea un objeto con las propiedades "elemento1", "elemento2" y así sucesivamente a partir del objeto dado:

 const data = [ //...objects { itemId: "Las5241Wz", time: 10 }, { itemId:"Bos1239Zf", time: 11 }, { itemId:"Las5241Wz", time: 15 }, { itemId:"Bos1239Zf", time: 21 } //...more objets ] console.log( Object.values( data.reduce((o,e)=>((o[e.itemId]=o[e.itemId]||[]).push(e),o),{})) .reduce((o,c,i)=>(o["item"+(i+1)]=c,o),{}) );

Esta es una "una sola línea" y por esa razón no es tan fácil de leer. Entonces, probablemente no sea la versión que pondrías en tu código de producción.

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