SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bigky226

    bigky226

    11 HAZİRAN 2006
  • cyriak

    cyriak

    29 Mart 2006
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007