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

  • SellerDp

    SellerDp

    27 EKİM 2009
  • The Weavers of Eternity Paracord Tutorials

    The Weavers

    1 Ocak 2014
  • Videojug

    Videojug

    25 EKİM 2006