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
的时候返回undefined
234就都不会执行
所以你第一次进入的时候value
是students
所以不是字符串返回undefined
就没有然后了
添加回答
举报
0/150
提交
取消