27 HAZİRAN 2011, PAZARTESİ
Erişim dizesi anahtar ile JavaScript nesneleri iç içe
Böyle bir veri yapısı var :
var someObject = {
'part1' : {
'name': 'Part 1',
'size': '20',
'qty' : '50'
},
'part2' : {
'name': 'Part 2',
'size': '15',
'qty' : '60'
},
'part3' : [
{
'name': 'Part 3A',
'size': '10',
'qty' : '20'
}, {
'name': 'Part 3B',
'size': '5',
'qty' : '20'
}, {
'name': 'Part 3C',
'size': '7.5',
'qty' : '20'
}
]
};
Ve verileri bu değişkeni kullanarak erişmek istiyorum :
var part1name = "part1.name";
var part2quantity = "part2.qty";
var part3name1 = "part3[0].name";
part1name someObject.part1.name
ile doldurulmalıdır 'olan s değeri, "Bölüm 1". 60 ile dolu olan part2quantity ile aynı şey.
Neyse ya saf javascript veya JQuery ile bunu başarmak için var mı?
CEVAP
27 HAZİRAN 2011, PAZARTESİ
Ben zaten vardı, iş gibi görünüyor: bazı benzer koduna göre bu yapılan
Object.byString = function(o, s) {
s = s.replace(/\[(\w )\]/g, '.$1'); // convert indexes to properties
s = s.replace(/^\./, ''); // strip a leading dot
var a = s.split('.');
for (var i = 0, n = a.length; i < n; i) {
var k = a[i];
if (k in o) {
o = o[k];
} else {
return;
}
}
return o;
}
Kullanımı::
Object.byString(someObj, 'part3[0].name');
http://jsfiddle.net/alnitak/hEsys/ çalışan bir demo bakın
Bunu Paylaş:
Nesneleri vs anahtar/değer çiftleri iç...
'' JavaScript anahtar kelime...
Eğer anahtar kontrol JavaScript bir ne...
JavaScript string özellik değeri nesne...
Girin JavaScript ile butona tıklayın m...