Aşağıdaki kod var: http://jsfiddle.net/8tAyu/7/JSON.stringify() replaceer işlevi neden çalışmıyor?
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": {
"week": 3
},
"month": 7
};
console.log(JSON.stringify(foo,
function(k, v) {
if (k === "week")
return v;
else
return undefined;
}));
böylece güya, bunu geri gelmeli iç içe değil "hafta" en azından düşündüm ve iç içe nasıl yapabileceğimi görecek geri gel. Ama her ne kadar değiştirdiğim önemli değil, console.log
undefined
'u basar, eğer işlevi her zaman return v
olarak değiştirmezsem, tüm nesneyi geri alırım. Neden?
Değiştiriciye yapılan ilk çağrı, "boş bir dizgeye" gönderir ve "undefined" değerini döndürerek dönüştürme işlemini etkili bir şekilde durdurur. –
MDN dokümanlar: başlangıç geçiş göründüğü için ... neden [ikame parametresi] (https://developer.mozilla.org/en-US/docs/Using_native_JSON#The_replacer_parameter) –
ben tür acaba biz "gerek özel olarak ele alınız "... eğer boş anahtar ve nesne tamamlanmadıkça değeri ilk geçerse, ilk geçişe ihtiyacımız varsa her zaman özel işlem yapabiliriz ... ve aslında bir neden göremiyorum ilk geçişi –