我有以下代码:
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;
}));
所以据说,我认为至少没有嵌套的“周”会回来,我会看到如何让嵌套的那个回来。但无论我如何更改它,console.log
打印出undefined
,除非我将函数简单地更改为return v
,然后我将整个对象取回。那是为什么?
答案 0 :(得分:4)
首先,Stringify似乎被调用,对象的根目录为空“k”。我们返回undefined,并且所有处理都停止。
如果我们将其更改为:
if (!k || (k == "week") )
然后结果是:
{"week":45}
你不会得到嵌套的,因为我们为“transport”返回undefined
并忽略其所有内容。