정리시간 입니다.
228
buriburi
10 asked
0
var book = {
member: {name: 100},
point: {value: 200}
};
function show(param){
for (var type in param){
typeof param[type] === "object" ? show(param[type]) : console.log(type + ":", param[type]);}
};
show(book);
// name: 100
// value: 200
```
1. show(book);
- 마지막 줄에서 show(book)를 호출하면서
- book 오브젝트를 파라미터 값으로 넘겨줍니다.
2. for (var type in param){...}
- for-in으로 파라미터로 받은 오브젝트 전개
3. typeof paam\[type] === "object" ? show(param\[type]) : console.log(type + ":", param\[type]);
4. param\[type] 타입이 "object" 이면
- show()를 호출
- 자신을 호출하면서 param\[type]을 넘겨줍니다.
- book\["member"]이므로 {name: 100}이 넘어 갑니다.
5. param\[type] 타입이 "object"가 아니면
- member: {name: 100}에서 {name: 100}을 읽은 것이므로 값을 출력합니다.
---
### \[정리시간\]
```javascript
debugger;
// 주어진 데이터
var member = {
Jan: {item: {title: "JS", amount: 100}, point: [10, 20, 30]},
Feb: {item: {title: "JS", amount: 200}, point: [40, 50, 60]}
};
// 배열이면 누적되는 값이 저장되는 변수 선언
// 계산을 해야하므로 단순히 선언만 하는 것이 아니라 초깃값으로 0을 할당해줬음
var result = 0;
// 배열의 엘리먼트를 더해 누적하게 만드는 reduce의 콜백 함수
function callback(prev, curr){
return prev + curr;
};
// 메인 함수 선언
function show(param){
// 파라미터로 오는 데이터가 오브젝트 형태여서 for-in문 활용
for (var type in param) {
// Array이면
if (Array.isArray(param[type]) === true){
// 배열의 값을 출력하고
console.log(param[type]);
// result에 배열의 값들을 누적합니다.
result += param[type].reduce(callback);
// 배열이 아닌 object이면
} else if (typeof param[type] === 'object') {
// 프로퍼티 이름과 값을 출력하고
console.log(type,":",param[type]);
// 재귀 호출을 통해 데이터를 끝까지 탐색
show(param[type]);
// 가장 안에있는 오브젝트의 프로퍼티 이름과 값을 출력
} else {
console.log(type,":",param[type]);
}
};
};
// 재귀 함수 호출
show(member);
// 누적한 값 출력
console.log(result);
javascript
Answer 0
getBook 실습 예제중 질문드립니다!
0
419
1
__proto__ 에 대해 질문드립니다
0
315
1
호이스팅 코딩시간 풀이
0
358
1
[코딩 시간] JS {name: value} 이해
0
340
1
[[Scope]] 와 [[Environment]]는 같은 개념인가요
0
345
0
slice
0
239
0
스코프가 뭔가요?
0
307
0
어려워요
0
255
0
강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.
0
339
1
[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.
0
300
0
스코프 질문
0
253
1
fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ
1
542
1
this binding 논리 질문입니다.
0
279
1
파라미터 값을 매핑할 때
0
251
0
ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.
0
209
0
정리시간입니다.
6
269
0
정리 시간 입니다.
0
203
0
정리시간입니다.
6
227
0
코딩시간 입니다.
1
222
0
선생님 스코프 질문이 있습니다.
1
240
0
[정리시간] 해보았습니다!
0
175
0
선생님 질문있습니다!!
0
159
0
질문드려도 될까요 선생님..
0
217
0
엔진이 식별자 해결을 위해서 스코프를 사용한다고 하셨는데
0
185
0

