코딩쌀롱
Algorithm Day(배열중복제거, let, const) 본문
📌 배열의 중복 원소 제거
- Set
- reduce()
- reduce(), indexOf()
- filter(), indexOf()
const arr = [2, 1, 5, 1, 6, 5, 2, 3];
// 1. Set
// Set을 사용하면 유니크한 Set객체를 반환.
// Set 객체를 다시 Array.form으로 배열로 변경
const set = Array.from(new Set(arr));
// 2. reduce
// Array.includes(value): value가 Array에 존재하는지 판단해 true,false 반환
arr.reduce((acc, curr) => acc.includes(curr) ? acc : [...acc,curr], []);
// ES6을 사용 못 할 때
// 1. reduce, indexOf
arr.reduce(function(acc, curr, index) {
acc.indexOf(curr) > -1 ? acc : acc.push(curr);
return acc;
}, []);
// 2. filter, indexOf
arr.filter(function(el, idx, arr) {
return arr.indexOf(el) === idx;
});
// 결과값은 모두 [2, 1, 5, 6, 3]
📌 let, const
✱기본형 변수 선언
- let, const 공통점은 변수를 선언할 때 사용된다는 것
- 값의 변경이 필요할 경우 let, 값의 변경이 필요 없는 상수로 사용될 경우 const
✱참조형 변수 선언 → const
참조형 변수(object, array, function)를 사용할 때는 const로 선언하는 것이 바람직하다.
// 값의 변경 O, 재할당 X
const arr = [];
arr.push(1);
console.log(arr); // [1]
const obj = {value: 1};
obj.value = 2;
console.log(obj); // {value: 2};
위 코드를 볼 때 값의 변경이 있었지만 오류는 발생하지 않는다. 변수 자체가 재할당되지 않았기 때문이다. const는 참조하는 메모리 주소가 변하지 않는 변수를 선언할 때 사용한다.
'개발공부' 카테고리의 다른 글
[프로그래머스_JS] 멀쩡한 사각형 (0) | 2020.12.18 |
---|---|
Algorithm Day(배열 최소값 찾기, 문자열 자르기) (0) | 2020.12.16 |
Algorithm Day(reduce, map, spread operator) (0) | 2020.12.16 |
Mission7 (Asynchronous) (0) | 2020.12.16 |
Comments