indexOf() ํจ์๋, ๋ฐฐ์ด์์ ํน์ ๊ฐ์ด ์ฒ์์ผ๋ก ๋ํ๋๋ index๋ฅผ ๋ฆฌํดํฉ๋๋ค.
filter() ํจ์๋ ํน์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ์ ๋ฐฐ์ด ํํ๋ก ๋ฆฌํดํฉ๋๋ค.
const dupArr = [1, 2, 3, 1, 2];
const uniqueArr = dupArr.filter((element, index) => {
return dupArr.indexOf(element) === index;
});
document.writeln(Array.isArray(uniqueArr));
document.writeln(uniqueArr);
์ ์์ ์์
dupArr.filter(callback);
filter() ํจ์๋
dupArr์ ์์๋ค์ callback ํจ์๋ก ์ ๋ฌํ์ฌ
๊ฐ ์์๋ค์ด callback ํจ์์ ์ ์๋ ๊ธฐ์ค์ ๋ถํฉํ๋์ง ๊ฒ์ฌํ๊ณ ,
๊ฒ์ฌ ๊ฒฐ๊ณผ๊ฐ true๋ฅผ ๋ฆฌํดํ๋ ์์์ ๋ชจ์์ ๋ฐฐ์ด ํํ๋ก ๋ฆฌํด(uniqueArr) ํฉ๋๋ค.
dupArr.indexOf(element) === index;
filter() ํจ์๋ก ์ ๋ฌ ๋ callback ํจ์๋
๊ฒ์ฌํ๊ณ ์๋ ๊ฐ(element)์ด ๋ฐฐ์ด(dupArr)์์ ๊ฐ์ฅ ์ฒ์์ผ๋ก ๋ํ๋ index์
๊ฒ์ฌํ๊ณ ์๋ ์์์ index์ ๋น๊ตํ์ฌ
๊ฐ์ ๊ฒฝ์ฐ์๋ง true๋ฅผ ๋ฆฌํดํฉ๋๋ค.
์์ ์์ ์์ dupArr์ ๊ฐ์ด ์์๋๋ก ์ ๋ฌ๋๋ฉด
'dupArr.indexOf(element) === index' ๊ตฌ๋ฌธ์
true, true, true, false, false ๋ฅผ ์์๋๋ก ๋ฆฌํดํ์ฌ
์ค๋ณต๋๋ ๊ฐ์ด ์ฒซ๋ฒ์งธ๋ก ๋ํ๋๋ ๊ฒฝ์ฐ์๋ง filter ํจ์์์ ๊ฑธ๋ฌ์ง๋๋ก ํ์์ต๋๋ค.
const dupArr = [1, 2, 3, 1, 2];
const set = new Set(dupArr);
const uniqueArr = [...set];
console.log(uniqueArr) // [1, 2, 3]
const dupArr = [1, 2, 3, 1, 2];
const set = new Set(dupArr);
const uniqueArr = Array.from(set);
console.log(uniqueArr) // [1, 2, 3]