SORU
21 ŞUBAT 2012, Salı


Siklik içeren nesne seri hale getirilirken değer nesnesi

Diğer düğümler için başvurular hangi alt düğümler içeren bir nesne (ayrıştırma ağacı) var.

Bu nesne seri hale getirmek istiyorum, JSON.stringify(), ama ben kullanarak: bahsettiğim yapıları nedeniyle TypeError: cyclic object value.

Bu nasıl bir çözüm olabilir? Diğer düğümler için bu başvuruları temsil veya sıralanmış nesne değil olup olmadığı benim için önemli değil.

Diğer taraftan, yaratılan zaman nesnesi bu özellikleri kaldırma sıkıcı görünüyor ve çözümleyici (narcissus) değişiklik yapmak istemezdim.

CEVAP
21 ŞUBAT 2012, Salı


stringify, zaten sıralanmış nesneleri çıkarmak replacer function: ikinci parametre kullanın

seen = [];

JSON.stringify(obj, function(key, val) {
   if (val != null && typeof val == "object") {
        if (seen.indexOf(val) >= 0) {
            return;
        }
        seen.push(val);
    }
    return val;
});

http://jsfiddle.net/mH6cJ/38/

Doğru yorumlarda belirttiği gibi, bu kod "" "" olanlar. özyinelemeli görülen nesnenin her kaldırır Örneğin, için

a = {x:1};
obj = [a, a];

sonuç yanlış olacaktır. Eğer yapı bu şekilde ise, Crockford decycle daha iyi bir seçenektir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • PUSHER

    PUSHER

    11 HAZİRAN 2014