라라리라
배열의 요소를 key로, 요소의 갯수를 value로 하는 map 본문
[문제]
1,1,1,8,2,3,3,3,4,4,5,6,6,6,1,1,2,9,9,9 이런식으로 배열이있는데 같은 숫자가
세개가 있는 숫자만 남기고 나머지는 삭제하려는데 어떻게 하면 좋을까요??
1,1,1,8,2,3,3,3,4,4,5,6,6,6,1,1,2,9,9,9 이걸
3, 6, 9 만 남기는거에요
let arr = [1,1,1,8,2,3,3,3,4,4,5,6,6,6,1,1,2,9,9,9];
let map1 = new Map();
for (let i of arr) {
if (map1.has(i)) {
map1.set(i, map1.get(i) + 1);
} else {
map1.set(i, 1);
}
}
map.has(key) 이미 key값을 가지고있으면 true, 그렇지 않으면 false를 반환한다.
map.get(key) key값의 value값을 반환한다.
map은 중복된 key 값을 허용하지 않기 때문에,
결과적으로 map1에는 고유한 key값 : key값의 갯수가 저장되게된다.
console.log("갯수가 3개인 값 => ")
for(let [key, value] of map1){
if(value == 3) console.log(key);
}
그 다음, map1의 모든 요소를 for..of문으로 순회하며
value값이 3인 key를 반환하도록 하여 해결하였다.
Output:
갯수가 3개인 값:
3
6
9
'코딩 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 최대값과 최소값(JavaScript) (0) | 2023.12.12 |
---|