js
const set = new Set(["ํ๋", "๋ฐ๋ค", "์ฐ"]); // set ์์ฑ
// new Set() // ๋น ๊ฒ๋ ์์ฑ ๊ฐ๋ฅ // Set(0) {}
console.log("set? : ", set); // Set(3) { 'ํ๋', '๋ฐ๋ค', '์ฐ' }
console.log("set์ ์์ดํ
๊ฐฏ์ ํ์ธ : ", set.size); // property
console.log("set์ ์์ดํ
์กด์ฌ ํ์ธ(boolean) : ", set.has("์ฐ"));
console.log("set์ ์์ดํ
์กด์ฌ ํ์ธ(boolean) : ", set.has(1004));
console.log();
// ์ํ, ๋ฐ๋ณต ๊ฐ๋ฅ(iterable)
set.forEach((item) => {
console.log("forEach ์ฌ์ฉ : ", item);
});
console.log();
for (const item of set) {
console.log("for of ์ฌ์ฉ : ", item);
}
console.log();
// ์ถ๊ฐ
set.add(1004);
console.log("1004 ์ถ๊ฐ : ", set);
set.add(1004);
console.log("1004 ์ถ๊ฐ : ", set); // ์์ดํ
์ค๋ณต โ
console.log();
// ์ญ์
set.delete("๋ฐ๋ค");
console.log("๋ฐ๋ค ์ญ์ : ", set);
// ์ ๋ถ ์ญ์
set.clear();
console.log("์ ๋ถ ์ญ์ : ", set);
console.log();
// ์ค๋ธ์ ํธ
const obj1 = { name: "๐", price: 2500 };
const obj2 = { name: "๐ฉ", price: 1000 };
const objs = new Set([obj1, obj2]); // 2๊ฐ์ ๊ฐ์ฒด๊ฐ ๋ค์ด๊ฐ๋ set์ ๋ง๋ฆ
console.log("objs? : ", objs);
console.log();
obj1.price = 1700; // ๊ฐ๊ฒฉ์ธํ
console.log("obj1 ๊ฐ๊ฒฉ ์ธํ ํ obj1? : ", obj1);
console.log("obj1 ๊ฐ๊ฒฉ ์ธํ ํ objs? : ", objs);
// *shallos copy(์์ ๋ณต์ฌ) - set๋ ๋ฐ๋
const obj3 = { name: "๐ฉ", price: 1000 }; // obj2์ ๋๊ฐ์ ์์ดํ
์ ์ถ๊ฐ
objs.add(obj3);
console.log("obj3 ์ถ๊ฐ? : ", objs);
// obj2์ ์์ key์ value๋ ๊ฐ์ง๋ง ์ฃผ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ๊ฐ๋ฅ (์ค๋ณต์๋)
obj3.price = 1500; // ๊ฐ๊ฒฉ์ธ์
console.log("obj3 ๊ฐ๊ฒฉ ์ธ์ ํ objs : ", objs);
// obj3๋ง ๊ฐ๊ฒฉ์ด ์ค๋ฆ. obj2์ ์์ ๋ค๋ฅธ ๊ฐ์ด ๋จ
js
// Map ์์ฑ์๋ฅผ ์ด์ฉํด์ ๋ง๋ฆ
// ๋ฐฐ์ด ์์ ๋ ๋ค๋ฅธ ๋ฐฐ์ด์ด ์๋ ์คํ์ผ
const map = new Map([
["key1", "๐"],
["key2", "๐"],
]);
console.log("Map ์์ฑ์ : ", map); // { 'key1' => '๐', 'key2' => '๐' }
console.log();
// ์ฌ์ด์ฆ ํ์ธ
console.log("map์ ์์ดํ
๊ฐฏ์๋? : ", map.size); // property
console.log();
// ์กด์ฌ ์ฌ๋ถ - value๊ฐ ์๋๋ผ ๋ฌด์กฐ๊ฑด key๋ก ํ์ธ
console.log("map์ key1 ์กด์ฌ ํ์ธ(boolean) : ", map.has("key1")); // mehtod
console.log("map์ key6 ์กด์ฌ ํ์ธ(boolean) : ", map.has("key6"));
console.log();
// ์ํ, ๋ฐ๋ณต
map.forEach((aa, bb, cc) => console.log(aa, bb, cc)); // ๐ key1 Map(2) { 'key1' => '๐', 'key2' => '๐' }
// map์ forEach๋ก ๋๋ฆฌ๋ฉด ์์ด value ๋ค๊ฐ key๊ฐ
// (value, key, Map)
console.log();
console.log("map.values() : ", map.values());
console.log("map.keys() : ", map.keys());
console.log("map.entries() : ", map.entries());
console.log();
// ์ฐพ๊ธฐ
console.log("key1์ value๊ฐ์? : ", map.get("key1"));
console.log("key6์ value๊ฐ์? : ", map.get("key6")); // undefined
console.log();
// ์ถ๊ฐ
map.set(1004);
console.log("1004์ถ๊ฐ : ", map); // 1004 => undefined - value๊ฐ ์์ด์ undefined๋ก ๋ธ
map.set("key5", "๐ฅ");
console.log("ํค์ ์ถ๊ฐ", map);
console.log();
// ์ญ์
map.delete(1004)
console.log("1004 ์ญ์ ", map);
console.log();
// ์ ์ฒด ์ญ์
map.clear()
console.log("์ ์ฒด ์ญ์ ", map);
js
// ๋ฌธ์ 1) ์ฃผ์ด์ง ๋ฐฐ์ด์์ ์ค๋ณต์ ์ ๊ฑฐ
const fruits = ["๐ฅ", "๐ฅฅ", "๐", "๐", "๐", "๐", "๐", "๐", "๐"];
// const aa = new Set(fruits);
const aa = [...new Set(fruits)]; // spread
console.log(aa);
console.log();
// ๋ฌธ์ 2) ์ฃผ์ด์ง ๋ ๋ฐฐ์ด์ ๊ณตํต๋ ์์ดํ
๋ง ๋ด๊ณ ์๋ ์ธํธ๋ฅผ ๋ง๋ค์ด๋ผ
const array1 = [1, 2, 3, 4, 5, 2];
const array2 = [1, 2, 3, 3];
function commonFunc(arr1, arr2) {
const newArray = arr1.filter((item) => arr2.includes(item));
return [...new Set(newArray)]; // spread // [1, 2, 3]
}
console.log(commonFunc(array1, array2));