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

  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • GFX Tutorials

    GFX Tutorial

    12 AĞUSTOS 2013