728x90
반응형
배열에 있는 값을 객체로 만들고 싶었다.
키는 배열의 값으로, 키에 할당되는 값은 해당 값의 개수로 말이다.
예를 들어, [1, 3, 2, 5, 4, 5, 2, 3] 가 주어졌을 때, { '1': 1, '2': 2, '3': 2, '4': 1, '5': 2 } 이러한 객체로 만들고 싶었다.
가장 많이 사용하는 방법과 한 줄의 코드로 간편하게 작성하는 방법 2가지를 가져왔다.
방법1
let tangerine = [1, 3, 2, 5, 4, 5, 2, 3];
let obj = {};
for (let i = 0; i < tangerine.length; i++) {
let el = tangerine[i];
if (obj.hasOwnProperty(el)) obj[el] += 1;
else obj[el] = 1;
}
console.log(obj); // { '1': 1, '2': 2, '3': 2, '4': 1, '5': 2 }
객체의 hasOwnProperty 옵션을 사용하여 키가 있는 경우에는 해당 키에 +1 을 해주고, 키가 없는 경우에는 1을 할당하는 코드를 작성해줬다.
방법2
let tangerine = [1, 3, 2, 5, 4, 5, 2, 3];
let obj = {};
tangerine.forEach((el) => (obj[el] = (obj[el] || 0) + 1));
console.log(obj); // { '1': 1, '2': 2, '3': 2, '4': 1, '5': 2 }
마찬가지로 객체에 키가 있을 때는 객체의 값 + 1을 하고, 객체에 키가 없을 때는 1을 할당하는 코드를 작성해줬다.
질문이나 잘못된 점은 댓글로 남겨주세요 :)💖
반응형
728x90
반응형
'JavaScript' 카테고리의 다른 글
실행 컨텍스트 (0) | 2023.06.14 |
---|---|
이벤트 루프 작동 원리 (0) | 2023.06.01 |
[JS] Promise에서 PromiseResult 데이터 꺼내는 법 (0) | 2023.03.08 |
[JS] JSON(JavasScript Object Notation)에 대해 알아보자 (0) | 2023.02.22 |
[JS] 데이터 속성 사용하기 (data-) (0) | 2023.02.20 |
댓글