์ค๋ณต์์ ์ ๊ฑฐ๋ฐฉ๋ฒ 3๊ฐ์ง ๐โ๏ธ
- Set
- indexOf ์ filter ์ด์ฉ
- forEach ์ includes ์ด์ฉ
( ์ 3๊ฐ์ง ๋ฐฉ๋ฒ๋ง๊ณ ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ ์ ์๋ค! )
Set
const test = [1, 2, 3, 3, 3];
const setTest = new Set(test);
const setTest2 = [...setTest];
console.log(setTest); //Set = {1,2,3}
console.log(setTest2); // [1,2,3];
- ์ค๋ณต๊ฐ์ด ์๋ ๋ฐฐ์ด์ Set ๊ฐ์ฒด๋ก ๋ง๋ ํ ์คํ๋ ๋์ฐ์ฐ์(...)๋ฅผ ์ด์ฉํด ๋ฐฐ์ด์ ์ ๊ฐํด์ค๋ค.
- Set ๊ฐ์ฒด๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํ ๋ ์คํ๋ ๋ ์ฐ์ฐ์๋ง๊ณ Array.from() ๋ก๋ ๊ฐ๋ฅํ๋ค.
indexOf, filter
const test = [1, 2, 3, 3, 3];
const filterTest = test.filter((item, idx) => {
return test.indexOf(item) === idx;
});
console.log(filterTest); // [1,2,3]
- indexOf๋ ํด๋นํ๋ ์ฒซ๋ฒ ์งธ index๋ฅผ ์ฐพ์ผ๋ฉด ๊ณง๋ฐ๋ก ๊ทธ index๊ฐ์ ๋ฆฌํดํฉ๋๋ค. ์ฆ 3์ด๋ผ๋ ์ซ์๊ฐ ๋์ค๋ฉด ๊ทธ index๊ฐ์ ๋ฆฌํดํ๊ฒ๋๊ณ ๋ค์ item์ธ 3์ด ๋์ค๊ฒ ๋๋ฉด index๊ฐ indexOf์ ๊ฐ์ง ์๊ธฐ์ false๋ฅผ ๋ณด์ด๊ณ ํํฐ๋ก ๊ฑธ๋ฌ์ง๊ฒ ๋ฉ๋๋ค.
forEach, includes
const test = [1, 2, 3, 3, 3];
let testarr = [];
const forTest = test.forEach((element) => {
if (!testarr.includes(element)) {
testarr.push(element);
}
});
console.log(testarr); // [1,2,3]
- for Each๋ฌธ์ ๋๋ฉฐ testarr ๋น๋ฐฐ์ด์ ํด๋นํ๋ ์์๊ฐ ์๋์ง ํ์ธํ๊ณ not ์ฐ์ฐ์๋ฅผ ์ด์ฉํด "ํด๋นํ๋ element๊ฐ ์๋ค๋ฉด" pushํด ์ค๋๋ค. ๊ทธ๋ผ ๋๋ฒ์งธ 3์ด ๋์์๋ true๋ฅผ ๋ฐํํ์ง๋ง not์ฐ์ฐ์๋ก ์ธํด false๋ก ๋ณ๊ฒฝ๋์ด if๋ฌธ์์ ์ฝ๋๋ ์คํ๋์ง ์์ต๋๋ค.
Point .
- ์ด ์์ 3๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ์ธํ๊ณ ๋ ๋ง์ ๋ฐฉ๋ฒ์ด ์๋ค.
- ์ค๋ณต์ ๊ฑฐ ๋ฟ๋ง ์๋๋ผ ์ฝ๋๋ฅผ ์์ฑํ ๋ ํจ์จ๊ณผ ๊ฐ๋ ์ฑ์ ๊ณ ๋ คํด์ ์์ฑํ๋๋ก ๋ ธ๋ ฅํ์.( ์ 3๊ฐ์ง ๋ฐฉ๋ฒ ์ค Set๊ฐ์ฒด๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ์ด ์ ์ผ ๊ฐ๋ ์ฑ์์๋ ์๊ฐ๋ณต์ก๋ ๊ธฐ์ค์ผ๋ก ๋ดค์ ๋ ํจ์จ๋ฉด์์๋ ํ๋ฅญํด ๋ณด์ธ๋ค.๐๐)
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค์ฝํ ์ฒด์ธ(Scope chain) (2) | 2022.08.28 |
---|---|
์ค์ฝํ(Scope) (0) | 2022.08.28 |
sort ๋ฉ์๋๋ฅผ ๋ฐฐ์๋ณด์ (0) | 2022.08.24 |
toString์ ์์๋ณด์ (0) | 2022.08.20 |
๋ฌธ์์ด์ ์๋ผ๋ณด์ โ (substr, substring, slice) (0) | 2022.08.19 |