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

  • Google

    Google

    18 EYLÜL 2005
  • MrDevin521

    MrDevin521

    18 Temmuz 2010
  • Study with Substance P

    Study with S

    31 Mayıs 2008