728x90
for in 구문 : 객체의 모든 key에 접근할 수 있다.
function allKeys(obj) {
for (let key in obj) {
console.log(key);
}
}
[코드] for in 구문을 통해 객체의 모든 key에 접근하고 출력할 수 있다.
여기서 key 는 변수기 때문에 꼭 key 라고 적어주지 않고 props 혹은 아무거나 적어주어도 된다.
문제
두개의 객체를 입력받아 두 번째 객체의 속성들을 첫 번째 객체에 추가해야 한다. 아래의 입출력 예시를 보고 정답을 코드로 옮겨보자.
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 4, c: 3 };
// 보기의 코드를 여기에 입력하면 아래의 결과가 나와야 한다.
extend(obj1, obj2);
console.log(obj1); // --> {a; 1, b: 2, c: 3}
console.log(obj2); // --> {b: 4, c: 3}
정답
두 개의 객체를 입력받아 두 번째 객체의 속성들을 첫 번째 객체에 추가한다. 여기서 두 가지 조건이 생긴다.
obj2에는 있는데 obj1에 없는 key가 있다면 obj2의 key의 value를 obj1의 key의 value에 할당한다.
만약에 obj1 과 obj2 에 중복으로 있는 key 라면 key를 변경하지 않고 유지한다.
function extend(obj1, obj2) {
for (let key in obj2) {
if (!(key in obj1)) {
obj1[key] = obj2[key];
}
}
}j
주의사항
아래의 코드는 배열의 요소에 순서대로 반복적으로 접근하기 위한 방법이나 객체에서는 사용하지 않는 것이 좋다. 객체의 key가 0, 1, 2, 3... 인 경우에만 활용할 수 있다.
function allKeys(obj) {
for (let key = 0; key < obj.length; key++) {
console.log(key)
}
}
반응형
'My Wiki (CodesStates) > JS,Node' 카테고리의 다른 글
(3-2) JS/Node 스코프,클로저 - 스코프 (0) | 2021.08.04 |
---|---|
(3-1) JS/Node 스코프,클로저 - 원시자료형과 참조자료형 (0) | 2021.08.04 |
(2-4) JS/Node 배열, 객체 - 객체 기초 (0) | 2021.08.01 |
(2-3) JS/Node 배열, 객체 - 배열 요소 포함 여부 확인하기 (0) | 2021.08.01 |
(2-2) JS/Node 배열, 객체 - 배열의 반복 (0) | 2021.08.01 |
댓글