본문 바로가기
2222
Stack & Tool/Node.js

나를 괴롭혔던 Ojbect.entries.

by PARK TAE JOON 2021. 3. 12.

const game = {
  team1: 'red',
  team2: 'black',
};

// console.table(game);
console.table(game['team1']);
// console.log(game.team1);

for (const [team, odd] of Object.entries(game)) {
  console.log(game[team]);
  //   console.log(team);
  //   console.log(game[team]);
  //   console.log(game.team);
  // key값이 스트링이다. 스트링이기 때문에
}

핵심적으로 봐야했었던 부분은 객체의 속성 키가 문자열이냐. 아니냐. 이거였다.

지금 다시 생각해보면 정말 어이없는 막힘이었지만 다시는 잊을 수 없도록 해주고

기초가 부족한 부분들이 있다는걸 다시 깨우치게 해주는 좋은 경험이었다.

성심성의껏 댓글을 남겨주시는 온라인 선배님들이 있어서 너무 배우기 좋은 환경인 것 같다..

 

 

아래는 내가 이해했다고 생각했지만 잘못 이해했던 부분이다.

반성하기 위해서 기록을 남겨놓는다.


코드부터 보자.

const game = {
  team1: 'red',
  team2: 'black',
};

for (const [team, odd] of Object.entries(game)) {
	console.log(`${game[team]}`);
}

이것을 이해하기 위해서 원초적인 개념부터 다시 생각했다.

계속 코드로 보자.


const game = {
  team1: 'red',
  team2: 'black',
};

for (const test of Object.entries(game)) {
	console.log(test);
}

반환되는 값은 배열로

["team1", "red"]

["team2", "black"]

이 나왔다.

 

이것을 그대로 [team, odd]에 넣었다고 가정을 하면

console.log(`${game[team]}`)이 이해가 된다.

 

나중에 봤을 때 또 이해가 안간다면 아래를 더보자.


const test = ['team3', 'yellow'];
console.log(test[0]);

배열을 불러올 때 배열이름[인덱스번호] 이런식으로 작성한다.

 

그러니까 위 game 객체를 봤을 때

외부에서는 game.team1 이런식으로 불러오는 것이 맞지만

 

for-of문 안에서는 배열로 할당받은 [team]이

[team1]

[team2]

이렇게 배열을 가지고 있기 때문에

game[team]이 맞다.

'Stack & Tool > Node.js' 카테고리의 다른 글

Promise에 대해서  (0) 2021.04.14
innerHTML vs innerText vs textContent  (0) 2021.03.18
javascript in udemy #17 ~ #24  (0) 2021.02.22
javascript in udemy #12 ~ #16  (0) 2021.02.20
udemy에서 javascript 1위 강좌를 보기 시작.  (0) 2021.02.20

댓글