javascript – 为什么JSON.stringify()替换函数不起作用?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么JSON.stringify()替换函数不起作用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有以下代码

http://jsfiddle.net/8tAyu/7/

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,除非我将函数简单地改为总是返回v,然后我回到整个对象.这是为什么?

最佳答案
似乎首先调用Stringify,对象的根目录为空“k”.我们返回undefined,并且所有处理都停止.

如果我们将其更改为:

if (!k || (k == "week") )

然后结果是:

{"week":45}

你不会得到嵌套的,因为我们为“transport”返回undefined并忽略它的所有内容.

猜你在找的JavaScript相关文章