웹 프로그래밍

Nest js map은 키를 인덱스로 접근하지 못한다? get / set / for

mcdn 2022. 9. 10. 13:15
반응형

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/set

 

Map.prototype.set() - JavaScript | MDN

The set() method adds or updates an entry in a Map object with a specified key and a value.

developer.mozilla.org

 

let gameList: Map<string, Game> = new Map(); // gameId Game
let gameList: Map<string, Game> = new Map(); // gameId Game
 

이런식으로 맵 객체를 만들었다하면 

값을 집어넣으려면 

    gameList.set(gameId, game);
gameList.set(gameId, game);

 

set함수를 통해서 key, value 쌍을 넣는다. 

 

그리고 접근할 때 gameList[gameId] 하면 undefined가 나온다. 

 

const game : Game = gameList.get(gameId);
const game : Game = gameList.get(gameId);
 
이런식으로 gameList.get(gameId)로 키를 넣어야 value를 얻을 수 있다. 
 
 
추가로 for문을 도는 방법은 
for (let key of gameList) {
      if (key[1].gameStatus === GameStatus.ready) {
for (let key of gameList) {
    if (key[1].gameStatus === GameStatus.ready) {
       ....
}
 
 

for (let key of gameList)를 하면 

key에 [키, 값] 이 리스트로 담긴다. 

값이 만약 구조체이면 안에 있는 변수에 key[1].gameStatus 식으로 접근하면 된다. 

 

중요한건 let key OF gamelist라는 점, in이 아니다. 

반응형