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

关于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
  • 1 回答
  • 0 关注
  • 589 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信