2013-04-09 10 views
7

Mam nadzieję, że dzień ci się uda.Próba dodania wielu właściwości do obiektu JavaScript za pomocą pętli

Tak więc mam obiekt bez właściwości. Próbuję dodać wiele właściwości do tego obiektu za pomocą pętli. pojawi Każda właściwość dodawana do pętli w obiekcie wiele razy w zależności od tego, ile razy przebiegów pętli, z każdym nowym własności zwiększany o 1.

Więc mam coś takiego:

myObject = { }; 

for(i = 0; i < 2; i++){ 
    myObject.propA + i = foo; 
    myObject.propB + i = bar; 
}; 

Który ja chcesz uzyskać coś takiego:

myObject.propA0 = foo; 
myObject.propB0 = bar; 
myObject.propA1 = foo; 
myObject.propB2 = bar; 

Podanie ładnego stosu obiektów generowanych w locie w zależności od tego, ile razy działa pętla. Ale wydaje mi się, że tego nie rozumiem. Więc jak dokładnie przekazuję zmienną z pętli do właściwości, kiedy jest ona tworzona i przypisywana?

Odpowiedz

19

Spróbuj użyć notacji nawiasu kwadratowego dla nazw

myObject['propa' + i] = foo; 
+0

W rzeczywistości to zrobił, bardzo zobowiązany. –

5

użyć metody tablica dostępu do ustawienia właściwości.

myObject = { }; 

for(i = 0; i < 2; i++){ 
    myObject['propA' + i] = foo; 
    myObject['propB' + i] = bar; 
}; 
+0

To również okazało się przydatne, niektóre z obiektów w moim bieżącym projekcie działają lepiej jako grupy tablic. –

9

Jak inni użytkownicy powiedział, trzeba użyć notacji nawiasu odnoszą się do właściwości ich nazw strun:

myObject['propA' + i] = 'foo'; 

ale dlaczego nie użyć tablica obiektów, zamiast pojedynczego obiektu o podobnych, numerowanych nazwach właściwości? Coś takiego:

var myArray = []; 
for(i = 0; i < 2; i++){ 
    myArray.push({ 
     propA: 'foo', 
     propB: 'bar' 
    }); 
}; 

ta powinna produkować:

[ 
    { propA: 'foo', propB: 'bar'}, 
    { propA: 'foo', propB: 'bar'} 
] 

Wygląda sposób czystszy, moim zdaniem.