웹 프로그래밍
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이 아니다.
반응형