728x90
이전 콘텐츠에서 JSON.stringify는 객체를 JSON으로 변환하는 메서드인 것을 확인했습니다.
이 메서드를 함수의 형태로 직접 구현하기 위해서, 재귀를 사용하세요.
자바스크립트 객체와 JSON은 대표적인 트리 구조를 가지고 있으므로, 전형적인 재귀 탐색이 가능한 구조(객체의 값으로 객체를 포함하는 구조)이기 때문에 재귀 사용을 적극 권장합니다.
어떻게 풀어야 할지 방향이 잘 정해지지 않는다면, 연습문제에서 재귀 문제를 풀었던 방법을 다시 상기하세요.
부모와 자식의 구조가 같은 트리 구조를 어떤 조건에서 재귀 호출하면 좋을지 고민해 보세요.
src/stringifyJSON.js에서 stringifyJSON 함수를 직접 구현해 보고 spec 테스트를 통과시키세요.
function stringifyJSON(obj) {
if(obj === null){
return "null";
}
if (typeof obj === "number"){
return String(obj);
}
if(typeof obj === "boolean"){
return String(obj);
}
if(typeof obj === "string"){
return `"${obj}"`
}
if(Array.isArray(obj)){
let newArr = [];
obj.forEach(function (ele){
newArr.push(stringifyJSON(ele))
})
return `[${newArr}]`
}
if(typeof obj === "object"){
let result = "";
for(let key in obj) {
if(obj[key] === undefined || typeof obj[key] === "function"){
result = String(result);
} else {
result += `${stringifyJSON(key)}:${stringifyJSON(obj[key])},`;
}
}
result = result.substr(0, result.length -1);
return `{${result}}`
}
// your code goes here
};
// 다음 코드는 결과 제출을 위한 코드입니다. 신경 쓰지 않아도 좋습니다.
if (typeof window === "undefined") {
module.exports = stringifyJSON;
}
'프로그래밍 > 개발 언어' 카테고리의 다른 글
React Custom Component (0) | 2022.07.04 |
---|---|
[React] Custom Component (0) | 2022.07.04 |
프로토타입과 클래스 (0) | 2022.05.25 |
클래스와 인스턴스 (0) | 2022.05.25 |
고차함수 코플릿 (0) | 2022.05.24 |
댓글