Dinamik olarak bir JS nesne özellik adı ayarlamak gerekiyor.
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
Sonuç şöyle olmalıdır:
data = {
1name: 'name1'
2name: 'name1'
}
Dinamik olarak bir JS nesne özellik adı ayarlamak gerekiyor.
for(i=1; i<3; i++) {
var key = i+'name';
data = {
key : 'name1',
}
}
Sonuç şöyle olmalıdır:
data = {
1name: 'name1'
2name: 'name1'
}
Yanıtlar:
var jsonVariable = {};
for(var i=1; i < 3; i++) {
jsonVariable[i + 'name'] = 'name' + i;
}
[]
Tuşları dinamik olarak ayarlamak için gösterimi kullanmanız gerekir .
var jsonVariable = {};
for(i=1; i<3; i++) {
var jsonKey = i+'name';
jsonVariable[jsonKey] = 'name1';
}
Şimdi ES6'da nesne anahtarlarını dinamik olarak oluşturmak için nesne değişmez sözdizimini kullanabilirsiniz. []
var key = i + 'name';
data = {
[key] : 'name1',
}
ECMAScript 6 ile değişken nesne adlarını nesne değişmez sözdiziminde şu şekilde kullanabilirsiniz:
var keyName = 'myKey';
var obj = {
[keyName]: 1
};
obj.myKey;//1
Bu sözdizimi aşağıdaki yeni tarayıcılarda kullanılabilir:
Edge 12+ (IE desteği yok), FF34 +, Chrome 44+, Opera 31+, Safari 7.1+
( https://kangax.github.io/compat-table/es6/ )
Bir kullanarak eski tarayıcılara destek ekleyebilir transpiler gibi babel . Toplama veya web paketi gibi bir modül paketleyici kullanıyorsanız, projenin tamamını aktarmak kolaydır .
Değişkenin nereden geldiği önemli değildir. Ana şey bir var ... Değişken adını köşeli parantez "[..]" arasında ayarlayın.
var optionName = 'nameA';
var JsonVar = {
[optionName] : 'some value'
}
Yukarıdaki Sainath SR'nin yorum satırları boyunca, nesneyi tanımlayıp daha sonra nesnenin dışında başka bir anahtar / değer tanımlayarak Google Apps Komut Dosyasındaki (henüz ES6'yı desteklemeyen) bir değişkenten bir js nesnesi özellik adı ayarlayabildim:
var salesperson = ...
var mailchimpInterests = {
"aGroupId": true,
};
mailchimpInterests[salesperson] = true;