关于JSON.stringify()

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??


Cats萌萌
浏览 590回答 1
1回答

收到一只叮咚

如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。根节点的key是''空字符串 value是这个对象{    name:1,     children:{         name:2     } }例如这样的对象switchUpper遍历的顺序分别是1 . key:'',value:{name:1,children:{name:2}}2 .key:name,value:13 .key:children,value:{name:2}4 .key:name,value:2当有返回undefined他的子对象就被删除 例如1的时候返回undefined234就都不会执行 所以你第一次进入的时候value是students所以不是字符串返回undefined就没有然后了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript