๋ฌธ์
์ค๋ณต ๋จ์ด๋ฅผ ์ ๊ฑฐํด์ฃผ๋ ํจ์๋ฅผ ๊ตฌํํ์์ค. ์ ๋ ฅ๊ฐ์ ๋ฐฐ์ด ํํ๋ก ์์๋ค์ ๋ฌธ์ํ์ด ์ ๋ ฅ๋๊ณ , ์ค๋ณต ๋จ์ด๊ฐ ์ ๊ฑฐ๋ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
์ ๋ ฅ๊ฐ | ์ถ๋ ฅ๊ฐ |
["john", "alice", "alice"] | ['john', 'alice'] |
["Hello", "hello", "Hello", "hello"] | ['Hello', 'hello', 'HELLO'] |
["kiwi", "banana", "mango", "kiwi", "banana"] | ['kiwi', 'banana', 'mango'] |
(1) ๋์ ์ ๊ทผ ๋ฐฉ๋ฒ
1. ๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ๋ฐ๊พผ๋ค.
2. ๋ฌธ์์ด์ ๋ชจ๋ ์์๋ค์ ์๋ฌธ์๋ก ๋ฐ๊พผ๋ค.
3. ๋ฐ๋ณต๋ฌธ์ ๋๋ ค์ ์ค๋ณต ๋จ์ด๊ฐ ๋์ค๋ ๊ฒฝ์ฐ, ๋ค์ ๋์จ ๋จ์ด๋ฅผ ์ ๊ฑฐํ๋ค.
4. new_arr์ ๊ธฐ์กด arr๊ฐ์ pushํ๋ค.
(2) ๋ชจ๋ฒ ์ฝ๋ ๋ฐ ์ ๊ทผ ๋ฐฉ๋ฒ
1. Set ํจ์๋ฅผ ์ด์ฉํด์ ํ๋ฒ์ ์ค๋ณต๊ฐ์ ์ ๋ฆฌํ๋ค.
function answer(arr) {
let new_arr = [];
new_arr = Array.from(new Set(arr));
return new_arr;
}
(3) ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ง ๋ชปํ๋ ์ด์
โ Set ํจ์๋ฅผ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ ํ ๋ ์ฌ๋ฆฌ์ง ๋ชปํ๊ณ , Set ํจ์์ ๋ํ ๊ฐ๋ ์ด ๋ช ํํ์ง ์์๋ค. ๊ทธ๋์ ๋จ์ํ๊ฒ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ คํ๋ค.
ํด๊ฒฐ ๋ฐฉ์
(1) Set ํจ์ ๋ฐ Array.from์ ๋ํ ๊ฐ๋ ์ดํด - ๊ฐ์ Set ํจ์ ๋ถ๋ถ ๋ค์ ์ฒญ์ทจ (38. Set)
โป Set
- value ๋ง์ ์ ์ฅํ๋ฉฐ ์ค๋ณต์ ํ์ฉํ์ง ์๋ Collection
- Set.has(i) : Set ์์ i ์์๊ฐ ์๋์ง ํ์ธ
- Set.delete(i) : Set ์์ i ์์๋ฅผ ์ญ์
let set = new Set(); // output: Set(0) {}
let num = new Set([1, 2, 3, 4, 5]); // output: Set(5) { 1, 2, 3, 4, 5 }
let str = new Set("Hello!"); // output: Set(5) { 'H', 'e', 'l', 'o', '!' }
โป Array.from
- ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ์๊ฒ ๋ณต์ฌํด ์๋ก์ดArray ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฉ์๋.
let friends = ['Tom', 'Jim', 'Kevin', 'Tom']
set = new Set (Array.from(friends)); // output: Set(3) { 'Tom', 'Jim', 'Kevin' }
(2) ๋ชจ๋ฒ ์ฝ๋์ ๋ํ ์ดํด
function answer(arr) {
let new_arr = [];
new_arr = Array.from(new Set(arr));
return new_arr;
}
: Set ๋ฉ์๋๋ฅผ ํ์ฉํด, ๊ธฐ์กด arr ๋ฐฐ์ด๋ก ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์๋ก์ด Collection Set ์ ํ์ฑํ ํ Array.from์ ์ด์ฉํด ์๋ก์ด Array ๊ฐ์ฒด์ธ new_arr ๋ฅผ ํ์ฑํ๋ค.