Baseline Widely available *
Set
ê°ì²´ë ììê°ì´ë ê°ì²´ 참조 ê° ë± ëª¨ë ì íì ê³ ì ê°ì ì ì¥í ë ì¬ì©í ì ììµëë¤.
Set
ê°ì²´ë ê°ì 컬ë ì
ì
ëë¤. Setì ê°ì í ë²ë§ ëíë ì ìì¼ë©°, Setì 컬ë ì
ììë ê³ ì í ê°ì
ëë¤. Setì ìì를 ì½ì
ììëë¡ ìíí ì ììµëë¤. ì½ì
ììë ê° ììê° add()
ë©ìëì ìí´ Setì ì±ê³µì ì¼ë¡ ì½ì
ë ìì(ì¦, add()
ê° í¸ì¶ë ë ì´ë¯¸ Setì ëì¼í ììê° ìë ê²½ì°)ì í´ë¹í©ëë¤.
ëª ì¸ìììë Setì´ "íê· ì ì¼ë¡ 컬ë ì ì ìì ìì ë°ë¼ ì í ì´íì ì¡ì¸ì¤ ìê°ì ì ê³µíë" ë°©ìì¼ë¡ 구íëì´ì¼ íë¤ê³ ì구íê³ ììµëë¤. ë°ë¼ì ë´ë¶ì ì¼ë¡ í´ì í ì´ë¸(O(1) ì¡°í), ê²ì í¸ë¦¬(O(log(N)) ì¡°í) ëë ë³µì¡ì±ì´ O(N)ë³´ë¤ ì¢ì ë¤ë¥¸ ë°ì´í° êµ¬ì¡°ë¡ ííí ì ììµëë¤.
ê° ëë±ì±ê° ëì¼ì±ì ëì¼ ê° ì ë¡ ëë± ìê³ ë¦¬ì¦ì 기ë°ì¼ë¡ í©ëë¤. (ì´ì ìë 0
ê³¼ -0
ì ë¤ë¥¸ ê°ì¼ë¡ ì·¨ê¸íë ëì¼ ê° ëë±ë¥¼ ì¬ì©íìµëë¤. ë¸ë¼ì°ì í¸íì±ì íì¸íì¸ì.) ì¦, ===
ì°ì°ìì ì미ì ë°ë¼ NaN
ì NaN
ê³¼ ëì¼íê² ê°ì£¼ëë©°(NaN !== NaN
ììë ë¶êµ¬íê³ ) ë¤ë¥¸ 모ë ê°ì ëì¼íê² ê°ì£¼ë©ëë¤.
has
ë©ìëë ì´ì ì Setì ì¶ê°ë ëë¶ë¶ì ìì를 ìííë ê²ë³´ë¤ íê· ì ì¼ë¡ ë¹ ë¥¸ ì ê·¼ ë°©ìì ì¬ì©íì¬ ê°ì´ Setì ìëì§ ì¬ë¶ë¥¼ íì¸í©ëë¤. í¹í ë°°ì´ì length
ê° Setì size
ì ê°ì ë Array.prototype.includes
ë©ìëë³´ë¤ íê· ì ì¼ë¡ ë ë¹ ë¦
ëë¤.
Set
ê°ì²´ë ìí ì°ì°ê³¼ ê°ì´ ì§í©ì 구ì±í ì ìë ëª ê°ì§ ë©ìë를 ì ê³µí©ëë¤. ì´ë¬í ë©ìëë ë¤ìê³¼ ê°ìµëë¤.
ì´ ë©ìëë¤ì ì¼ë°í ê°ë¥ì±ì ëì´ê¸° ìí´ Set
ê°ì²´ë¿ë§ ìëë¼ ì ì¬ Setì¸ ëª¨ë ê°ì²´ë¥¼ íì©í©ëë¤.
모ë Set êµ¬ì± ë©ìëë this
ê° ì¤ì Set
ì¸ì¤í´ì¤ì¬ì¼ íì§ë§, ì¸ìë Setê³¼ ì ì¬íë©´ ë©ëë¤. ì ì¬ Set ê°ì²´ë ë¤ìì ì ê³µíë ê°ì²´ì
ëë¤.
size
ìì±has()
ë©ìëkeys()
ë©ìëì를 ë¤ì´ Map
ê°ì²´ë size
, has()
, keys()
ë ê°ì§ê³ ì기 ë문ì Setì ë©ìë를 ì¬ì©íìë ìëì²ë¼ í¤ Setì²ë¼ ëìí©ëë¤.
const a = new Set([1, 2, 3]);
const b = new Map([
[1, "one"],
[2, "two"],
[4, "four"],
]);
console.log(a.union(b)); // Set(4) {1, 2, 3, 4}
ì°¸ê³ : ì ì¬ Set íë¡í ì½ì ìì를 ìì±í기 ìí´ [@@iterator]()
ëì keys()
ë©ìë를 í¸ì¶í©ëë¤. ì´ë ë§µì ê²½ì° ë°ë³µìë entries를 ìì±íì§ë§ has()
ë©ìëë keys를 ì·¨í기 ë문ì ë§µì ì í¨í ì ì Set ê°ì²´ë¡ ë§ë¤ê¸° ìí´ìì
ëë¤.
ë°°ì´ì has()
ë©ìëë size
ìì±ì´ ìê³ keys()
ë©ìëê° ìì ëì ì¸ë±ì¤ë¥¼ ìì±í기 ë문ì ì ì¬ Setì´ ìëëë¤. WeakSet
ê°ì²´ ìì keys()
ë©ìëê° ì기 ë문ì ì ì¬ Setì´ ìëëë¤.
ë¸ë¼ì°ì Set
ê³¼ ì ì¬í ê°ì²´(ëë "ì ì¬ Set ê°ì²´")ë Set
ì²ë¼ ì¬ë¬ ê°ì§ ë°©ìì¼ë¡ ëìíë ì¹ API ì¸í°íì´ì¤ì
ëë¤.
Set
ê³¼ ë§ì°¬ê°ì§ë¡ ììë ê°ì²´ì ì¶ê°í ììëë¡ ìíí ì ììµëë¤. ì ì¬ Set
ê°ì²´ì Set
ìë ëì¼í ì´ë¦ê³¼ ëìì ê³µì íë ìì±ì ë©ìëë ììµëë¤. ê·¸ë¬ë Set
ê³¼ ë¬ë¦¬ ê° í목ì ëí´ ë¯¸ë¦¬ ì ìë í¹ì ì íë§ íì©í©ëë¤.
íì©ëë ì íì ëª
ì¸ IDL ì ìì ì¤ì ëì´ ììµëë¤. ì를 ë¤ì´ GPUSupportedFeatures
ë í¤/ê°ì¼ë¡ 문ìì´ì ì¬ì©í´ì¼ íë ì ì¬ Set
ê°ì²´ì
ëë¤. ì´ë ìë ì¬ì IDLì ì ìëì´ ììµëë¤.
interface GPUSupportedFeatures {
readonly setlike<DOMString>;
};
ì ì¬ Set
ê°ì²´ë ì½ê¸° ì ì©ì´ê±°ë ì½ê¸°-ì°ê¸° ê°ë¥í©ëë¤(ìì IDLìì readonly
í¤ìë 참조).
Set
ì ì¬ ê°ì²´ìë size
ìì±ê³¼ ë©ìë entries()
, [forEach()
](#set. prototype.foreach), has()
, keys()
, values()
, @@iterator
ê° ììµëë¤.Set
ì ì¬ ê°ì²´ìë ì¶ê°ì ì¼ë¡ clear()
, delete()
, add()
ë©ìëê° ììµëë¤.ë©ìëì ìì±ì í목ì ì íì ëí ì íì ì ì¸íê³ ë Set
ì ëë±í ê°ì²´ì²ë¼ ëì¼í ëìì í©ëë¤.
ìëë ì½ê¸° ì ì©ì¸ ì ì¬ Set
ë¸ë¼ì°ì ê°ì²´ì ìì
ëë¤.
ìëë ì°ê¸° ê°ë¥í ì ì¬ Set
ë¸ë¼ì°ì ê°ì²´ì ìì
ëë¤.
Set()
ìë¡ì´ Set
ê°ì²´ë¥¼ ìì±í©ëë¤.
Set[@@species]
íì ê°ì²´ë¥¼ ìì±íë ë° ì¬ì©ëë ìì±ì í¨ìì ëë¤.
ìë ìì±ì Set.prototype
ì ì ìëë©° 모ë Set
ì¸ì¤í´ì¤ìì ê³µì ë©ëë¤.
Set.prototype.constructor
ì¸ì¤í´ì¤ ê°ì²´ë¥¼ ìì±í ìì±ì í¨ìì
ëë¤. Set
ì¸ì¤í´ì¤ì ê²½ì° ì´ê¸° ê°ì Set
ìì±ìì
ëë¤.
Set.prototype.size
Set
ê°ì²´ì ìë ê°ì ì를 ë°íí©ëë¤.
Set.prototype[@@toStringTag]
@@toStringTag
ìì±ì ì´ê¸° ê°ì 문ìì´ "Set"
ì
ëë¤. ì´ ìì±ì Object.prototype.toString()
ìì ì¬ì©í©ëë¤.
Set.prototype.add()
Inserts a new element with a specified value in to a Set
object, if there isn't an element with the same value already in the Set
.
Set
ê°ì²´ì ê°ì ê°ì´ ìì§ ìë¤ë©´ í´ë¹ Set
ê°ì²´ì í¹ì ê°ì ê°ì§ ìë¡ì´ ìì를 ì½ì
í©ëë¤.
Set.prototype.clear()
Set
ê°ì²´ìì 모ë ìì를 ì ê±°í©ëë¤.
Set.prototype.delete()
value
ì ì°ê²°ë ìì를 ì ê±°íê³ ììê° ì±ê³µì ì¼ë¡ ì ê±°ëìëì§ ì¬ë¶ë¥¼ ëíë´ë ë¶ì¸ì ë°íí©ëë¤. Set.prototype.has(value)
ë ì´í false
를 ë°íí©ëë¤.
Set.prototype.difference()
íëì Setì ë°ìì 주ì´ì§ Set ìì¼ë ì´ ì¸ì¤í´ì¤ì Setìë ìë ììê° í¬í¨ë ìë¡ì´ Setì ë°íí©ëë¤.
Set.prototype.entries()
Set
ê°ì²´ì ê° ììì ëí´ ì½ì
ììëë¡ [value, value]
ë°°ì´ ì í¬í¨íë ì ë°ë³µì ê°ì²´ë¥¼ ë°íí©ëë¤. ì´ë Map
ê°ì²´ì ì ì¬íë¯ë¡ ê° í목ì í¤ë Set
ì ê°ê³¼ ëì¼í©ëë¤.
Set.prototype.forEach()
Set
ê°ì²´ì ìë ê° ê°ì ëí´ ì½ì
ììëë¡ callbackFn
ì í ë²ì© í¸ì¶í©ëë¤. thisArg
매ê°ë³ìê° ì£¼ì´ì§ë¤ë©´, callbackFn
ì í¸ì¶í ëë§ë¤ ì´ ë§¤ê°ë³ìê° this
ê°ì¼ë¡ ì¬ì©ë©ëë¤.
Set.prototype.has()
주ì´ì§ ê°ì ê°ì§ ììê° Set
ê°ì²´ ë´ ì¡´ì¬ ì¬ë¶ë¥¼ ëíë´ë ë¶ì¸ì ë°íí©ëë¤.
Set.prototype.intersection()
íëì Setì ë°ì ì´ Setê³¼ 주ì´ì§ Setì ìì를 모ë í¬í¨íë ì Setì ë°íí©ëë¤.
Set.prototype.isDisjointFrom()
íëì Setì ë°ì 주ì´ì§ Setê³¼ ì´ Set ê°ì ê³µíµ ììê° ìëì§ë¥¼ ê°ë¦¬í¤ë ë¶ì¸ì ë°íí©ëë¤.
Set.prototype.isSubsetOf()
íëì Setì ë°ì ì´ Setì 모ë ììê° ì£¼ì´ì§ Set ìì ìëì§ ì¬ë¶ë¥¼ ëíë´ë ë¶ì¸ì ë°íí©ëë¤.
Set.prototype.isSupersetOf()
íëì Setì ë°ì 주ì´ì§ Setì 모ë ììê° ì´ Set ìì ìëì§ ì¬ë¶ë¥¼ ëíë´ë ë¶ì¸ì ë°íí©ëë¤.
Set.prototype.keys()
Set.prototype.values()
ì ë³ì¹ì
ëë¤.
Set.prototype.symmetricDifference()
íëì Setì ë°ì ì´ Setê³¼ 주ì´ì§ Set 모ëì ìí ìì를 ì ì¸íê³ ì£¼ì´ì§ Set í¹ì ì´ Setìë§ ìë ììê° ìí´ìë ìë¡ì´ Setì ë°íí©ëë¤.
Set.prototype.union()
íëì Setì ë°ì ì´ Setê³¼ 주ì´ì§ Set 모ë í¹ì íëë§ ìí´ìë ììê° ë¤ì´ìë ìë¡ì´ Setì ë°íí©ëë¤.
Set.prototype.values()
Set
ê°ì²´ ë´ì ê° ììì ê°ì ì½ì
ììëë¡ yieldíë ìë¡ì´ ë°ë³µì ê°ì²´ë¥¼ 리í´í©ëë¤.
Set.prototype[@@iterator]()
Set
ê°ì²´ ë´ì ê° ìì를 ì½ì
ììëë¡ yieldíë ìë¡ì´ ë°ë³µì ê°ì²´ë¥¼ ë°íí©ëë¤.
const mySet1 = new Set();
mySet1.add(1); // Set(1) { 1 }
mySet1.add(5); // Set(2) { 1, 5 }
mySet1.add(5); // Set(2) { 1, 5 }
mySet1.add("some text"); // Set(3) { 1, 5, 'some text' }
const o = { a: 1, b: 2 };
mySet1.add(o);
mySet1.add({ a: 1, b: 2 }); // o ë ë¤ë¥¸ ê°ì²´ë¥¼ 참조íê³ ì기 ë문ì ì´ë ê´ì°®ìµëë¤
mySet1.has(1); // true
mySet1.has(3); // false, 3 ì´ setì ì¶ê°ëì§ ìì기 ë문ì
ëë¤.
mySet1.has(5); // true
mySet1.has(Math.sqrt(25)); // true
mySet1.has("Some Text".toLowerCase()); // true
mySet1.has(o); // true
mySet1.size; // 5
mySet1.delete(5); // setìì 5 ì ê±°
mySet1.has(5); // false, 5 ë ì ê±°ëììµëë¤.
mySet1.size; // 4, ë§ íë를 ì ê±°í기 ë문ì
mySet1.add(5); // Set(5) { 1, 'some text', {...}, {...}, 5 } - ì´ì ì ìì ë ìì´í
ì´ ìë¡ì´ ìì´í
ì¼ë¡ ì¶ê°ëë, ìì ì ìë ìì¹ë¥¼ ì ì§íì§ ëª»í©ëë¤.
console.log(mySet1); // Set(5) { 1, "some text", {â¦}, {â¦}, 5 }
set ìíí기
setì ìì를 ì½ì ììëë¡ ìíí©ëë¤.
for (const item of mySet1) {
console.log(item);
}
// 1, "some text", { "a": 1, "b": 2 }, { "a": 1, "b": 2 }, 5
for (const item of mySet1.keys()) {
console.log(item);
}
// 1, "some text", { "a": 1, "b": 2 }, { "a": 1, "b": 2 }, 5
for (const item of mySet1.values()) {
console.log(item);
}
// 1, "some text", { "a": 1, "b": 2 }, { "a": 1, "b": 2 }, 5
// í¤ì ê°ì ì¬ê¸°ì ê°ìµëë¤.
for (const [key, value] of mySet1.entries()) {
console.log(key);
}
// 1, "some text", { "a": 1, "b": 2 }, { "a": 1, "b": 2 }, 5
// Array.fromì ì¬ì©íì¬ Set ê°ì²´ë¥¼ ë°°ì´ ê°ì²´ë¡ ë³ê²½
const myArr = Array.from(mySet1); // [1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2}, 5]
// ìë ì½ëë HTML 문ììì ìíë ë ëìí©ëë¤.
mySet1.add(document.body);
mySet1.has(document.querySelector("body")); // true
// Setê³¼ ë°°ì´ê°ì ë³ê²½
const mySet2 = new Set([1, 2, 3, 4]);
console.log(mySet2.size); // 4
console.log([...mySet2]); // [1, 2, 3, 4]
// êµì§í©(intersection)ì ìëì²ë¼ ì뮬ë ì´ì
ê°ë¥í©ëë¤.
const intersection = new Set([...mySet1].filter((x) => mySet2.has(x)));
// ì°¨ì§í©(difference)ì ìëì²ë¼ ì뮬ë ì´ì
ê°ë¥í©ëë¤.
const difference = new Set([...mySet1].filter((x) => !mySet2.has(x)));
// Setì´ ê°ì§ ê°ì²´ë¥¼ forEach()를 ì¬ì©íì¬ ìí
mySet2.forEach((value) => {
console.log(value);
});
// 1
// 2
// 3
// 4
기본ì ì¸ Set ì°ì° 구íí기
function isSuperset(set, subset) {
for (const elem of subset) {
if (!set.has(elem)) {
return false;
}
}
return true;
}
function union(setA, setB) {
const _union = new Set(setA);
for (const elem of setB) {
_union.add(elem);
}
return _union;
}
function intersection(setA, setB) {
const _intersection = new Set();
for (const elem of setB) {
if (setA.has(elem)) {
_intersection.add(elem);
}
}
return _intersection;
}
function symmetricDifference(setA, setB) {
const _difference = new Set(setA);
for (const elem of setB) {
if (_difference.has(elem)) {
_difference.delete(elem);
} else {
_difference.add(elem);
}
}
return _difference;
}
function difference(setA, setB) {
const _difference = new Set(setA);
for (const elem of setB) {
_difference.delete(elem);
}
return _difference;
}
// ìì
const setA = new Set([1, 2, 3, 4]);
const setB = new Set([2, 3]);
const setC = new Set([3, 4, 5, 6]);
isSuperset(setA, setB); // true ë°í
union(setA, setC); // Set {1, 2, 3, 4, 5, 6} ë°í
intersection(setA, setC); // Set {3, 4} ë°í
symmetricDifference(setA, setC); // Set {1, 2, 5, 6} ë°í
difference(setA, setC); // Set {1, 2} ë°í
ë°°ì´ê³¼ì ê´ê³
const myArray = ["value1", "value2", "value3"];
// Set ìì±ì를 ì¬ì©íì¬ ë°°ì´ì Setì¼ë¡ ë³í
const mySet = new Set(myArray);
mySet.has("value1"); // returns true
// ì ê° êµ¬ë¬¸ì ì¬ì©íì¬ setì ë°°ì´ë¡ ë³í
console.log([...mySet]); // Will show you exactly the same Array as myArray
ë°°ì´ìì ì¤ë³µ ìì ì ê±°í기
// ë°°ì´ìì ì¤ë³µ ìì를 ì ê±°í기 ìí´ ì¬ì©
const numbers = [2, 13, 4, 4, 2, 13, 13, 4, 4, 5, 5, 6, 6, 7, 5, 32, 13, 4, 5];
console.log([...new Set(numbers)]); // [2, 13, 4, 5, 6, 7, 32]
문ìì´ê³¼ì ê´ê³
// ëì문ì 구문 (setì "F"ì "f"를 모ë ê°ì§ê² ë¨)
new Set("Firefox"); // Set(7) [ "F", "i", "r", "e", "f", "o", "x" ]
// ì¤ë³µ 문ìì´ì ìëµ ("f"ë 문ìì´ìì 2ë² ëíë기ì, setì íëë§ ê°ì§ê² ë¨)
new Set("firefox"); // Set(6) [ "f", "i", "r", "e", "o", "x" ]
Set를 ì¬ì©íì¬ ê° ëª©ë¡ì ê³ ì ì±ì ë³´ì¥íë ë°©ë²
const array = Array.from(document.querySelectorAll("[id]")).map((e) => e.id);
const set = new Set(array);
console.assert(set.size === array.length);
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4