js_array중복제거

dev.dave·2023년 7월 24일

Javascript

목록 보기
32/167

// 배열 중복제거 방법 3가지
///////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////
//더미 데이터
//const nums1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const nums = [1, 2, 2, 2, 5, 6, 7, 7, 9];
/////////////////////////////////////////////////////////////////////
//
// Set 방법>
//
// set은 중복 허용 안됨.
// const mySet = new Set();
// mySet.add(1);
// mySet.add(2);
// mySet.add(2);

// console.log(mySet); //{ 1, 2 } // 2는 중복으로 추가가 되서, 자동 필터링됨.
//
// const uniqueNum = [...nums];
// [
// 1, 2, 2, 2, 5,
// 6, 7, 7, 9
// ]
//
const uniqueNum = [...new Set(nums)]; // Set사용 //[ 1, 2, 5, 6, 7, 9 ]
//console.log(uniqueNum);

///////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////
//
// indexOf 방법>
//
//console.log(nums.indexOf(6)); //5 가 나옴 즉, 6은 5번 인덱스에 위치해있다는 것임.
//
const uniNum = nums.filter((item, index) => {
//return console.log(아이템${item}, 포지션${index});
//return console.log(indexOf${nums.indexOf(item)}, index${index});
return nums.indexOf(item) === index;
});
//console.log(uniNum);

// indexOf0, index0 //같고
// indexOf1, index1 //같고
// indexOf1, index2 //틀리고
// indexOf1, index3 //틀리고
// indexOf4, index4 //같고
// indexOf5, index5 //같고
// indexOf6, index6 //같고
// indexOf6, index7 //틀리고
// indexOf8, index8 //같고
// []
//같은거, 일치하는것만 배열에 담는다.
//
// [ 1, 2, 5, 6, 7, 9 ] // 출력내용. //즉 중복 되는거 뺴고 나머지가 출력됨.
//
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
//
// caching / frequency map 방법>
//
//loop을 통해 미리 지정된 caching object에 존재여부 확인
//즉, 배열을 loop하면서, 돌면서, 출현빈도를 array 나, obj에 저장해서 중복검사함.

function uni_Nums(arr) {
const uniEl = {};
const result = [];

for (let el of arr) {
if (!uniEl[el]) {
result.push(el);
}
uniEl[el] = el;
}

return result;
}
console.log(uni_Nums(nums));

profile
🔥개인 메모 / 다른블로그 자료 참조 / 다른블로그 자료 퍼옴 (출처표기) /여기저기서 공부 했던 내용 개인메모 & 참고 / 개인 기록 용도 블로그 입니다.🔥

0개의 댓글