Dúvida sobre propriedade de objeto de array

No código a seguir:

var arr = [];
for (var i = 1 ; i <= 10 ; i++){
	arr.push({numero : i});
}

Como eu faria para conseguir inserir, em vez de {numero : 1}, {numero : 2} etc 10 vezes, inserir {numero1 : 1}, {numero2 : 2} no lugar?

Se está falando assim

arr.push({numero : 1},{numero : 2} ... 

e assim por diante?

É porque no caso, do jeito que deixei, vai fazer exatamente isso.

A minha variável arr vai conter um array de objetos que vai gravar [{numero : 1},{numero : 2},{numero : 3},{numero : 4},{numero : 5},{numero : 6},{numero : 7},{numero : 8},{numero : 9},{numero : 10}].

Mas eu quero que o meu array arr contenha, na verdade, [{numero1 : 1},{numero2 : 2},{numero3 : 3},{numero4 : 4},{numero5 : 5},{numero6 : 6},{numero7 : 7},{numero8 : 8},{numero9 : 9},{numero10 : 10}].

É possível fazer isso com um laço for da mesma forma que consegui fazer esse primeiro jeito?

1 curtida

Tem!

var arr = [];

function create_item(name, value)
{
	return {
      [ name + (() => i)() ]: i
    };
}

for (var i = 1 ; i <= 10 ; i++){
	arr.push(create_item('numero', i));
}

console.log(arr);

Exemplo:

Vixi, não entendi muito bem aheuhauehuaehau
O que significa esse => ?

1 curtida

Veja se ajuda

arr.push({["numero" + i] : i});

O => é um atalho para function() {} ou seja, um callback

1 curtida

Muito obrigado! Ficou bem mais fácil desse jeito:

var arr = [];
for (var i = 1 ; i <= 10 ; i++){
	arr.push({['numero' + i] : i});
}
console.log(arr);

Muito obrigado também ao Dragoon e aos outros que se prontificaram a ajudar.

1 curtida

é um arrow function e ai no caso é uma função anonima (função sem nome), cuidado também com o fácil algumas vezes não funciona

Boa Leitura:

1 curtida