0
06
34
47
为了账号安全,请及时绑定邮箱和手机立即绑定

关于JSON.stringify()

关于JSON.stringify()

Cats萌萌 2018-11-13 13:33:13
var students = {};students.app = 'nmm';  students.aps = 'nms';  students.ape = 'jju';  var json = JSON.stringify(students,switchUpper);  function switchUpper(key, value) {          if (typeof value=='string') {             return value;          }           }      console.log(json)菜鸟一枚求助!!当JSON.stringify()方法的第二个参数为函数时。函数里的两个参数是由谁传进来的,key是不是app,aps,ape?value是不是'nmm','nms','jju'?如果是,为什么函数里面达到条件了最后json返回的undefined??

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。

根节点的key''空字符串 value是这个对象

{    name:1,
    children:{
        name:2
    }
}

例如这样的对象switchUpper遍历的顺序
分别是
1 . key:'',value:{name:1,children:{name:2}}
2 .key:name,value:1
3 .key:children,value:{name:2}
4 .key:name,value:2
当有返回undefined他的子对象就被删除 例如1的时候返回undefined234就都不会执行 
所以你第一次进入的时候valuestudents所以不是字符串返回undefined就没有然后了


查看完整回答
反对 回复 2018-11-13

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号