Jieunny์ ๋ธ๋ก๊ทธ
S3) Unit 1. [์ค์ต] JSON.stringify ๋ณธ๋ฌธ
๐ฃ ์ฌ๊ท๋ก JSON.stringify ๋ฉ์๋ ๊ตฌํํ๊ธฐ
1๏ธโฃ Test ์กฐ๊ฑด
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "9"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "null"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "true"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "false"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด ""Hello world""๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "[]"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "[8]"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "["hi"]"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "[8,"hi"]"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "[1,0,-1,-0.3,0.3,1343.32,3345,0.00011999]"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "[8,[[],3,4]]"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "[[[["foo"]]]]"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "{}"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "{"a":"apple"}"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "{"foo":true,"bar":false,"baz":null}"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "{"boolean, true":true,"boolean, false":false,"null":null}"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "{"a":{"b":"c"}}"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "{"a":["b","c"]}"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "[{"a":"b"},{"c":"d"}]"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ๊ฐ์ฒด๋ ๋ฌธ์์ด "{"a":[],"c":{},"b":true}"๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค
โ ํจ์์ undefined๋ stringify๋์ง ์์ต๋๋ค.
2๏ธโฃ ์์ฑ ์ฝ๋
function stringifyJSON(obj) {
// your code goes here
// 1. number๋ null, boolean์ ๊ทธ๋ฅ String์ผ๋ก ๋ณํํด์ ์ถ๋ ฅ
if(typeof(obj) === 'number' || obj === null || typeof(obj) === 'boolean') return String(obj);
// 2. string์ ""์์์ ์ถ๋ ฅ
else if(typeof(obj) === 'string') return `"${obj}"`;
// 3. undefined, function ์ stringift ํด์๋ ์๋๋ค.
else if(typeof(obj) === 'undefined' || typeof(obj) === 'function') return 0;
// 4. ๋ฐฐ์ด์ธ ๊ฒฝ์ฐ ์์ ๋๋ฉด์ ์์ ๊ฐ๊ฐ์ stringifyJSON ํจ์์ ๋ด์์ JSON์ผ๋ก ๋ณํ ๊ฐ์ ๋ค์ ๋ฐฐ์ด์ ๋ฐ์์ ๋ฐํ
else if(Array.isArray(obj)) {
const answer = [];
for(let i of obj){
let temp = stringifyJSON(i);
answer.push(temp);
}
return `[${answer}]`;
}
// 5. ๊ฐ์ฒด์ธ ๊ฒฝ์ฐ๋ ๋ฐฐ์ด์ด๋ ๋น์ทํ๊ฒ, ๋์ ํค/๊ฐ์ ๋ ๋ค JSON์ผ๋ก ๋ณํํด์ค์ผํจ.
else if(typeof(obj) === 'object'){
let answer = '';
const keys = Object.keys(obj);
const values = Object.values(obj);
for(let i=0; i<keys.length; i++){
if(typeof(values[i]) === 'undefined' || typeof(values[i]) === 'function') return '{}';
let newKey = stringifyJSON(keys[i]);
let newValue = stringifyJSON(values[i]);
if(i !== 0) answer += ',' + newKey + ":" + newValue;
else answer += newKey + ':' + newValue;
}
return `{${answer}}`;
}
};
'CodeStates > Training' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
S3) Unit 2. [์ค์ต] Figma (0) | 2023.02.16 |
---|---|
S3) Unit 1. [์ค์ต] Tree UI (0) | 2023.02.14 |
S2) Unit 11. [์ค์ต] Cozโ Mini Hackathon (์๊ณ ๋ผ์คํ ์ด์ธ ์๋ฒ) (0) | 2023.02.09 |
S2) Unit 10. [์ค์ต] StatesAirline Server (0) | 2023.02.08 |
S2) Unit 10. [์ค์ต] Mini Node Server (0) | 2023.02.06 |