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

  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • The Onion

    The Onion

    14 Mart 2006