나는 다음과 같은 코드가 있습니다 http://jsfiddle.net/8tAyu/7/JSON.stringify() 대체 함수가 작동하지 않는 이유는 무엇입니까?
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": {
"week": 3
},
"month": 7
};
console.log(JSON.stringify(foo,
function(k, v) {
if (k === "week")
return v;
else
return undefined;
}));
그래서 아마도, 내가 그가 다시 와야 중첩되지 않는 "주"적어도 생각, 내가 중첩 된 하나를 만드는 방법을 볼 것이다 다시와. 그러나 내가 어떻게 그것을 변경하더라도, console.log
은 undefined
을 출력합니다. 만약 내가 단순히 return v
으로 기능을 변경하지 않는다면, 나는 전체 객체를 돌려줍니다. 왜 그런가요?
replacer에 대한 첫 번째 호출은'' "(빈 문자열)을 보내고'undefined'를 반환하므로 효과적으로 변환 프로세스가 중단됩니다. –
MDN docs : [Replacer 매개 변수] (https://developer.mozilla.org/en-US/docs/Using_native_JSON#The_replacer_parameter) –
왜 초기 패스가 필요한지 궁금합니다 ... 우리는 " 특별히 처리하십시오. "... 첫 번째 패스가 빈 키와 객체 값으로 처리되지 않으면 첫 번째 패스가 필요할 경우 항상 특별한 처리를 할 수 있습니다. 실제로는 이유가 표시되지 않습니다. 첫 번째 패스가 필요합니다. –