Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida com for loop em js

Estou tentando criar uma lista de objetos items, e popular o id de cada objeto com o valor do iterator do for. Mas o id só retorna o último valor.

Por exemplo:

let items = [];

const item = {
  id: "id"
};

for (let i = 0; i < 10; i++) {
  item.id = i;
  items[i] = item;
}

Se eu imprimir item, vai mostrar todos os itens com o id com o valor 10. Qual a solução para esse problema?

1 resposta
solução!

Oi Alexandre, tudo bom?

Isso acontece porque estamos criando apenas uma constante de item para todas as posições do array items. O idela seria, a cada iteração, criar um item novo. Algo como:

let items = [];

for (let i = 0; i < 10; i++) {  
  // aqui criamos um item a cada loop
  const item = {
    id: i
  }
  items[i] = item;
}

Abraço!