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

129
Visualizações
Inserte un elemento en un índice específico dentro de la matriz que se está repitiendo

¿Cuál es la mejor manera de actualizar una matriz insertando el nuevo elemento en un índice específico cuando se cumple cierta condición durante el bucle?

 const exampleArray = [ {item: 1, count: 5}, {item: 2, count: 20}, {item: 3, count: 10}, {item: 6, count: 9} {item: 4, count: 5}]

Quiero hacer un bucle de exampleArray mientras hago un seguimiento del conteo e inserto un nuevo elemento justo después cuando el conteo es mayor o igual a 10 y luego restablezco el conteo a 0 para el siguiente ciclo

entonces el resultado que quiero es

 const resultArray = [ {item: 1, count: 5}, {item: 2, count: 20}, {item: 'new item 1 as count is over 10', count: 0}, {item: 3, count: 10}, {item: 'new item 2 as count is equal to 10', count: 0}, {item: 6, count: 9}, {item: 4, count: 5}, {item: 'new item 3 as count is > 10, previous two counts (9 + 5 )', count: 0 }]

probé esto

 let count = 0 exampleArray.forEach((item, index) => { count += item.count if(count >= 10) { exampleArray.splice(index + 1, 0, {item: 'item to be added', count: 0} count = 0 } })
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Ambos crean una nueva matriz: si desea sobrescribir, use let y asigne de nuevo al original

TJ Mapa sugerido y plano - eso es un planoMapa

 const exampleArray = [ {item: 1, count: 5}, {item: 2, count: 20}, {item: 3, count: 10}, {item: 4, count: 5}]; let count = 0; const resultArray = exampleArray.flatMap(item => { count += item.count; if (count >= 10) { count = 0 return [item, {item:"new", count:0}] } return item; }); console.log(resultArray);

Reducir

 const exampleArray = [ {item: 1, count: 5}, {item: 2, count: 20}, {item: 3, count: 10}, {item: 4, count: 5}]; let count = 0; const resultArray = exampleArray.reduce((acc,cur) => { count += cur.count; acc.push(cur); if (count >= 10) { count = 0 acc.push({item:"new", count:0}) } return acc; },[]); console.log(resultArray);

about 4 years ago · Juan Pablo Isaza Relatório

0

Yo optaría por un bucle for o for...of simple. Si está feliz de crear una nueva matriz (si no, veo que no está en su pregunta, vea a continuación):

 const result = []; for (const item of exampleArray) { count += item.count; result.push(item); if (count >= 10) { result.push({item: 'item to be added', count: 0}); } }

o (originalmente usé map ... flat() , porque me olvidé nuevamente de flatMap ; mplungjan me lo recordó ) :

 let count = 0; const result = exampleArray.flatMap(item => { count += item.count; if (count >= 10) { return [item, {item: 'item to be added', count: 0}]; } return item; });

Ejemplo en vivo:

 const exampleArray = [ {item: 1, count: 5}, {item: 2, count: 20}, {item: 3, count: 10}, {item: 4, count: 5} ]; let count = 0; const result = []; for (const item of exampleArray) { count += item.count; result.push(item); if (count >= 10) { result.push({item: 'item to be added', count: 0}); } } console.log(result); count = 0; const result2 = exampleArray.map(item => { count += item.count; if (count >= 10) { return [item, {item: 'item to be added', count: 0}]; } return item; }).flat(); console.log(result2);

Si realmente desea modificar la matriz existente, el bucle for le permite controlar la variable de índice:

 for (let index = 0; index < exampleArray.length; ++index) { const item = exampleArray[index]; count += item.count; if (count >= 10) { exampleArray.splice(index + 1, 0, {item: 'item to be added', count: 0}); count = 0; ++index; // Skip the item we just added } }

Ejemplo en vivo:

 const exampleArray = [ {item: 1, count: 5}, {item: 2, count: 20}, {item: 3, count: 10}, {item: 4, count: 5} ]; let count = 0; for (let index = 0; index < exampleArray.length; ++index) { const item = exampleArray[index]; count += item.count; if (count >= 10) { exampleArray.splice(index + 1, 0, {item: 'item to be added', count: 0}); count = 0; ++index; // Skip the item we just added } } console.log(exampleArray);

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