Я смотрю MDN "Использование собственного JSON". И у меня есть 3 вопроса о методе JSON.stringify
.
Вопрос 1:
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": "car",
"month": 7
},
censor = function (key, value) {
if (typeof value === 'string') {
return;
}
return value;
};
console.log(JSON.stringify(foo, censor)); // String: {"week":45,"month":7}
Коды выше работают нормально. Но почему коды ниже не могут нормально работать?
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": "car",
"month": 7
},
censor = function (key, value) {
if (typeof value !== 'string') {
return;
}
return value;
};
console.log(JSON.stringify(foo, censor)); // undefined
Вопрос 2:
Пожалуйста, соблюдайте приведенные ниже коды:
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": "car",
"month": 7
},
censor = function (key, value) {
return 2;
};
console.log(JSON.stringify(foo, censor)); // String: 2
Я думаю, что мои коды должны получить строку ниже, потому что «Если вы возвращаете число, строка, соответствующая этому числу, используется в качестве значения свойства при добавлении в строку JSON». (цитата из https://developer.mozilla.org/En/Using_native_JSON).
{"foundation":2,"model":2,"week":2,"transport":2,"month":2}
Но я просто получаю строку 2
. Почему?
Вопрос 3:
Если я хочу получить {"foundation":2,"model":2,"week":2,"transport":2,"month":2}
, как мне изменить коды?
Большое спасибо!