알고리즘 문제를 풀다보면 배열 속 요소를 알아내야 하는 경우가 많다.
웹 서핑을 하며 찾아낸 여러 함수 중 유용해보이는(실제로 알고리즘 문제를 풀때 유용하게 쓰고있는) 함수를 소개해보려 한다.
let arr = ['a','b','a','b','b','c','c','a','a','c'];
let obj = {};
arr.map(el=>{
obj[el] = (obj[el] || 0) + 1;
});
console.log(obj) // {a:4, b:3, c:3}
원리를 간단하게 설명하자면 반복문을 통해 arr속의 요소들을 key로, 개수를 value로 가지는 객체를 만들어주는데 (obj[el]||0)
을 통해 존재하지 않는 값이면 0에서 시작하고 obj[el]이 존재하면 그 값에 1씩 추가해주는 식으로 카운트하는 것이다.