안녕하세요
148
작성한 질문수 15
안녕하세요 강사님.
이전 질문과 같이 따라해보다가 문제가 있어.. 구글링 해봐도 알기 힘들어 여쭤봅니다.
function replace(key, value) {
if (typeof value === "string") {
return undefined;
}
return 5;
}
var obj = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
var json = JSON.stringify(obj, replace);
console.log(json);
와 같이 코딩했습니다.
제가 생각한 결과는 밸류가 string 타입인 프로퍼티는 모두 삭제되고 나머지 프로퍼티의 밸류가 5로 대체된 문자열이 나올것이라 생각했습니다만 단순히 5만 나옵니다.
예상결과 : {"week":5,"month":5}
실제결과: 5
어떤것이 결과를 다르게 하는 걸까요??
왜 밸류값들만 대체되는게 아니라 전체 데이터가 바뀌는걸까요??
답변 1
0
function replace(key, value) {
if (typeof value === "string") {
return undefined;
}
//5를 value 바꾸면, 원하는 결과는 아니지만 {week: 45, month: 7} 반환됩니다.
return value;
}
JSON.stringify(obj, replace)의 두 번째 파라미터는 일반적으로 사용하지 않습니다.
두 번째 기능 자체가 코드의 가독성이 떨어집니다.
JSON.stringify()를 실행하기 전에 obj의 데이터를 for-in 문 등의 방법으로 걸러낸 후 처리하는 것이 일반적입니다.
강좌에서도 언급했지만 JSON.stringify(obj, replace)의 두 번째 파라미터 기능은 그렇게 좋은 기능이 아닙니다.
이런 기능이 있다는 정도로 넘기고 사용하지 않는 것이 나을 것 같습니다.
프론트엔드 부트캠프 가기 전, 짧은 감사 인사드립니다!
2
109
2
섹션10 3. Object 프리미티브 값 구하기에서 질문있습니다.
1
148
2
섹션3의 1강 연산자, 표현식 강의에서 표현식 질문이 있습니다.
0
140
2
섹션 1. 6번째 강의 질문입니다.
1
247
1
선생님 Objcet 질문 있습니다.
0
299
2
forEach문을 활용한 코딩시간 풀이
0
616
1
sort 코딩 시간 풀이
0
292
1
코딩 시간 풀이 올려봅니다.
0
229
1
인덱스 코딩시간 문제풀이
0
381
1
for문 코딩 시간 답제출
0
306
1
3:39 sort에 들어가서 one,two 파라미터질문입니다.
0
194
0
퀴즈 질문 및 정답
0
356
1
오브젝트
0
283
1
인스턴스 목적
1
239
1
[코딩시간 01] 3항 연산자로 작성했을 때, 각 값..?
0
269
1
Undefined === Null; // true???
0
194
1
indexOf의 파라미터에 음수를 작성 했을때에 대한 질문입니다.
0
1031
5
length 값 변환 논리에 대한 질문입니다.
0
211
1
상수 변수 선언에 대해
0
235
1
코딩 시간 (for문) 풀이
0
255
1
Object vs object
1
499
1
코딩 시간 풀이입니다.
0
195
1
log(add(1, 2, 3, 4));
0
179
1
코딩시간 답 제출
0
196
1





