Baseline Widely available *
Set
ãªãã¸ã§ã¯ãã¯ãããªããã£ãå¤ããªãã¸ã§ã¯ãåç
§ãåãããããããåã§å¤æ°ã®ä¸æã®å¤ãæ ¼ç´ãããã¨ãã§ãã¾ãã
Set
ãªãã¸ã§ã¯ãã¯å¤ã®éåã§ãã Set
ã«éè¤ããå¤ã¯æ ¼ç´åºæ¥ã¾ããã Set
å
ã®å¤ã¯éåå
ã§ä¸æã«ãªãã¾ãã Set
ã¯ãã®è¦ç´ ã«ã¤ãã¦æ¿å
¥é ã§å復å¦çãè¡ããã¨ãã§ãã¾ããæ¿å
¥é ã¯ãåè¦ç´ ã add
ã¡ã½ããã«ãã£ã¦æ£å¸¸ã« Set
ã«æ¿å
¥ãããé çªã«å¯¾å¿ãã¾ãã
仿§æ¸ã§ã¯ Set
ã®å®è£
ã«ã¤ãã¦ãå¹³åã¢ã¯ã»ã¹æéãéåå
ã®è¦ç´ æ°ã«å¯¾ãã¦ç·å½¢æ¢ç´¢ä»¥ä¸ãã§ãããã¨ãè¦æ±ããã¦ãã¾ãããããã£ã¦ãè¨ç®éã O(N) ãããåªãã¦ããéããå
é¨çã«ã¯ããã·ã¥è¡¨ï¼ã«ãã¯ã¢ãã㯠O(1)ï¼ãæ¢ç´¢æ¨ï¼ã«ãã¯ã¢ãã㯠O(log(N))ï¼ãã¾ãã¯ä»ã®ãã¼ã¿æ§é ã¨ãã¦è¡¨ããã¨ãã§ãã¾ãã
å¤ã®ç夿§ã¯ã SameValueZero ã¢ã«ã´ãªãºã ã«åºã¥ãã¦ãã¾ããï¼ä»¥å㯠SameValue ã使ç¨ãã¦ããã0 㨠-0 ã¯ç°ãªããã®ã¨ãã¦æ±ããã¦ãã¾ããã詳ããã¯ãã©ã¦ã¶ã¼ã®äºææ§ã® "Key equality for -0 and 0" ãåç
§ãã¦ãã ãããï¼ã¤ã¾ãã NaN
㯠NaN
ã¨åãã¨ã¿ãªããï¼ä¾ã NaN !== NaN
ã§ãã£ã¦ãï¼ããã以å¤ã®å¤ã¯ ===
æ¼ç®åã®æåã«å¾ã£ã¦çããã¨ã¿ãªããã¾ãã
has
ã¡ã½ããã¯ãå¤ã Set
å
ã«ãããã©ããããã§ãã¯ãã¾ããããã¯ã以åã« Set
ã«è¿½å ãããè¦ç´ ã®ã»ã¨ãã©ã確èªãããããå¹³åããã¨é«éãªã¢ããã¼ãã使ç¨ãã¾ããç¹ã«ã Array
ãªãã¸ã§ã¯ãã® length
ã Set
ãªãã¸ã§ã¯ãã® size
ã¨çããå ´åãå¹³åã㦠Array.prototype.includes
ã¡ã½ããããéããªãã¾ãã
Set
ãªãã¸ã§ã¯ãã¯ãæ°å¦æ¼ç®ã®ããã«éåãåæããããã®ããã¤ãã®ã¡ã½ãããæä¾ãã¾ãããããã®ã¡ã½ããã«ã¯ã以ä¸ã®ãããªãã®ãããã¾ãã
ããä¸è¬åã§ããããã«ããããã®ã¡ã½ãã㯠Set ãªãã¸ã§ã¯ãã ãã§ãªããSet 風ãªãã¸ã§ã¯ããåãå ¥ãã¾ãã
Set 風ãªãã¸ã§ã¯ããã¹ã¦ã® Set åæã¡ã½ããã§ã¯ã this
ãå®éã® Set
ã¤ã³ã¹ã¿ã³ã¹ã§ãããã¨ãè¦æ±ããã¾ããã弿°ã¯ Set 風ã§ããã ãã§æ§ãã¾ãããSet 風ãªãã¸ã§ã¯ãã¨ã¯ã次ã®ãã¨ãæä¾ãããªãã¸ã§ã¯ãã§ãã
size
ããããã£ãæ°å¤ãä¿æãããã¨ãhas()
ã¡ã½ãããè¦ç´ ãåããè«çå¤ãè¿ããã¨ãkeys()
ã¡ã½ããã Set å
ã®è¦ç´ ã®ã¤ãã¬ã¼ã¿ã¼ãè¿ããã¨ãä¾ãã°ãMap
ãªãã¸ã§ã¯ã㯠Set 風ã§ãããªããªãã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 風ãããã³ã«ã¯ãè¦ç´ ãçæããããã« keys()
ã¡ã½ããã [Symbol.iterator]()
ã®ä»£ããã«å¼ã³åºãã¾ããããã¯ãMap ãæå¹ãª Set 風ãªãã¸ã§ã¯ãã«ããããã§ãããªããªããMap ã®å ´åãã¤ãã¬ã¼ã¿ã¼ã¯é
ç®ãçæãã¾ãããhas()
ã¡ã½ããã¯ãã¼ãåå¾ããããã§ãã
é
åã¯ãhas()
ã¡ã½ããã size
ããããã£ãæã£ã¦ããããkeys()
ã¡ã½ãããè¦ç´ ã§ã¯ãªãã¤ã³ããã¯ã¹ãçæãããããSet 風ã§ã¯ããã¾ãããWeakSet
ãªãã¸ã§ã¯ãããkeys()
ã¡ã½ãããæããªããããSet 風ã§ã¯ããã¾ããã
ãã©ã¦ã¶ã¼ã® Set
風ãªãã¸ã§ã¯ãï¼ã¾ãã¯ãéå風ãªãã¸ã§ã¯ããï¼ã¨ã¯ãã¦ã§ã API ã®ä¸ã§å¤ãã®ç¹ã§ Set
ã®ããã«åä½ããã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ãã
Set
ã®ããã«ãè¦ç´ ã¯ãªãã¸ã§ã¯ãã«è¿½å ããé çªã«å復å¦çãããã¨ãã§ãã¾ãã Set
風ãªãã¸ã§ã¯ã㨠Set
ã«ã¯ãååã¨åä½ãåãããããã£ã¨ã¡ã½ãããããã¾ãã ããã Set ã¨ã¯ç°ãªããåã¢ã¤ãã ã«ã¯ç¹å®ã®å®ç¾©æ¸ã¿ã®åãã使ç¨ã§ãã¾ããã
許å¯ããã¦ããåã«ã¯ä»æ§æ¸ã® IDL å®ç¾©ã«è¨å®ããã¦ãã¾ãã ä¾ãã°ã GPUSupportedFeatures
㯠Set
風ãªãã¸ã§ã¯ãã§ããããã¼ã¨å¤ã¨ãã¦æååã使ç¨ããå¿
è¦ãããã¾ãã ããã¯ä¸è¨ã®ä»æ§ IDL ã§å®ç¾©ããã¦ãã¾ãã
interface GPUSupportedFeatures {
readonly setlike<DOMString>;
};
Set
風ãªãã¸ã§ã¯ãã¯ãèªã¿åãå°ç¨ãèªã¿æ¸ãå¯è½ãã®ã©ã¡ããã§ãï¼ä¸è¨ã® IDL ã§ readonly
ãã¼ã¯ã¼ãã確èªãã¦ãã ããã
Set
風ãªãã¸ã§ã¯ãã«ã¯ size
ããããã£ãããã entries()
, forEach()
, has()
, keys()
, values()
, [Symbol.iterator]()
ã®åã¡ã½ãããããã¾ããSet
風ãªãã¸ã§ã¯ãã«ã¯ãããã«å ã㦠clear()
, delete()
, add()
ã®åã¡ã½ãããããã¾ããã¡ã½ããã¨ããããã£ã¯ Set
ã®ç価ãªã¨ã³ãã£ãã£ã¨åãåä½ããã¾ãããé
ç®ã®ã®åã«å¶éãããã¾ãã
以ä¸ã®ãã®ããèªã¿åãå°ç¨ã® Set
風ãã©ã¦ã¶ã¼ãªãã¸ã§ã¯ãã®ä¾ã§ãã
以ä¸ã®ãã®ããèªã¿æ¸ãå¯è½ãª Set
風ãã©ã¦ã¶ã¼ãªãã¸ã§ã¯ãã®ä¾ã§ãã
Set()
æ°ãã Set
ãªãã¸ã§ã¯ããçæãã¾ãã
Set[Symbol.species]
æ´¾çãªãã¸ã§ã¯ããçæããããã«ä½¿ç¨ãããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãã
ãããã®ããããã£ã¯ Set.prototype
ã§å®ç¾©ããã¦ããããã¹ã¦ã® Set
ã¤ã³ã¹ã¿ã³ã¹ããå
±æããã¾ãã
Set.prototype.constructor
ãã®ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ããçæããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãã Set
ã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯ Set
ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãã
Set.prototype.size
Set
ãªãã¸ã§ã¯ãå
ã®å¤ã®æ°ãè¿ãã¾ãã
Set.prototype[Symbol.toStringTag]
[Symbol.toStringTag]
ããããã£ã®åæå¤ã¯æååã® "Set"
ã§ãã ãã®ããããã£ã¯ Object.prototype.toString()
ã§å©ç¨ããã¾ãã
Set.prototype.add()
ãã® Set
ãªãã¸ã§ã¯ãå
ã«åãå¤ãæã¤è¦ç´ ãã¾ã åå¨ããªãã£ãå ´åãæå®ããå¤ãæã¤æ°ããè¦ç´ ã Set
ãªãã¸ã§ã¯ãã«æ¿å
¥ãã¾ãã
Set.prototype.clear()
ãã® Set
ãªãã¸ã§ã¯ããããã¹ã¦ã®è¦ç´ ãåãé¤ãã¾ãã
Set.prototype.delete()
value
ã«é¢é£ããè¦ç´ ãåãé¤ããè¦ç´ ã®åé¤ã«æåãããã©ããã示ãè«çå¤ãè¿ãã¾ãã Set.prototype.has(value)
ã¯ãã®å¾ã¯ false
ãè¿ãã¾ãã
Set.prototype.difference()
éåãåãããã® Set
ã®ä¸ã«ãã£ã¦ä¸ããããéåã®ä¸ã«ãªãè¦ç´ ãå
¥ã£ãæ°ãã Set
ãè¿ãã¾ãã
Set.prototype.entries()
Set
ãªãã¸ã§ã¯ãå
ã®åè¦ç´ ã [value, value]
ã®é
åã®å½¢ã§æ¿å
¥é ã§è¿ããæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãããã㯠Map
ãªãã¸ã§ã¯ãã¨ä¼¼ã¦ãã¾ãããããããã®é
ç®ã® key ã Set
ã§ã¯ value ã¨åãã«ãªãã¾ãã
Set.prototype.forEach()
ãã® Set
ãªãã¸ã§ã¯ãå
ã«åå¨ããåå¤ã«å¯¾ãã¦ãæ¿å
¥é ã«ä¸åº¦ã㤠callbackFn
ãå¼ã³ã¾ããthisArg
弿°ãæå®ãããå ´åãããããã® callbackFn
ã®å¼ã³åºãã«ãã㦠this
ã®å¤ã¨ãã¦ä½¿ç¨ããã¾ãã
Set.prototype.has()
ãã® Set
ãªãã¸ã§ã¯ãå
ã«å¼æ°ã§ä¸ããããå¤ããã¤è¦ç´ ãåå¨ãããã©ããã示ãè«çå¤ãè¿ãã¾ãã
Set.prototype.intersection()
éåãåãããã® Set
ã®ä¸ã¨ä¸ããããéåã®ä¸ã®ä¸¡æ¹ã«ããè¦ç´ ãå
¥ã£ãæ°ãã Set
ãè¿ãã¾ãã
Set.prototype.isDisjointFrom()
éåãåãããã® Set
ã®ä¸ã«ä¸ããããéåã®ä¸ã®è¦ç´ ããªããã©ããã示ãè«çå¤ãè¿ãã¾ãã
Set.prototype.isSubsetOf()
éåãåãããã® Set
ã®ä¸ã®ãã¹ã¦ã®è¦ç´ ãä¸ããããéåã®ä¸ã«åå¨ãããã©ããã示ãè«çå¤ãè¿ãã¾ãã
Set.prototype.isSupersetOf()
éåãåããä¸ããããéåã®ä¸ã®ãã¹ã¦ã®è¦ç´ ããã® Set
ã«åå¨ãããã©ããã示ãè«çå¤ãè¿ãã¾ãã
Set.prototype.keys()
Set.prototype.values()
ã®å¥åã§ãã
Set.prototype.symmetricDifference()
éåãåãããã® Set
ã¾ãã¯ä¸ããããéåã®ä¸ã«åå¨ãããã®ã®ã両æ¹ã«ã¯åå¨ããªãè¦ç´ ãå
¥ã£ãæ°ãã Set
ãè¿ãã¾ãã
Set.prototype.union()
éåãåãããã® Set
ã¾ãã¯ä¸ããããéåã®ä¸ã®ã©ã¡ãããã¾ãã¯ä¸¡æ¹ã«åå¨ããè¦ç´ ãå
¥ã£ãæ°ãã Set
ãè¿ãã¾ãã
Set.prototype.values()
Set
ãªãã¸ã§ã¯ãå
ã®åè¦ç´ ã®å¤ãæ¿å
¥é ã«è¿ããæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
Set.prototype[Symbol.iterator]()
Set
ãªãã¸ã§ã¯ãå
ã®åè¦ç´ ã®å¤ãæ¿å
¥é ã«è¿ããæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
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 ã¯ã»ããã«è¿½å ãããªããã
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); // ã»ãããã 5 ãåãé¤ã
mySet1.has(5); // falseã 5 ã¯åé¤ããã
mySet1.size; // 4ã 1 ã¤ã®å¤ãåé¤ããã°ããã§ãããã
mySet1.add(5); // Set(5) { 1, 'some text', {...}, {...}, 5 }ã ä¸åº¦åé¤ãããè¦ç´ ã¯ãæ°ããè¦ç´ ã¨ãã¦è¿½å ãããããåé¤åã®ä½ç½®ã¯ä¿æãããªã
console.log(mySet1); // Set(5) { 1, "some text", {â¦}, {â¦}, 5 }
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
// Set ãªãã¸ã§ã¯ãã Array ãªãã¸ã§ã¯ãã« Array.from ã§å¤æ
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 㨠Array ã®éã®å¤æ
const mySet2 = new Set([1, 2, 3, 4]);
console.log(mySet2.size); // 4
console.log([...mySet2]); // [1, 2, 3, 4]
// 交差ããæ§åãã·ãã¥ã¬ã¼ããããã¨ãã§ãã
const intersection = new Set([...mySet1].filter((x) => mySet2.has(x)));
// å·®ãã·ãã¥ã¬ã¼ããããã¨ãã§ãã
const difference = new Set([...mySet1].filter((x) => !mySet2.has(x)));
// ã»ããå
ã®é
ç®ã forEach() ã§å復å¦ç
mySet2.forEach((value) => {
console.log(value);
});
// 1
// 2
// 3
// 4
åºæ¬çãªéåæ¼ç®ã®å®è£
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); // returns true
union(setA, setC); // returns Set {1, 2, 3, 4, 5, 6}
intersection(setA, setC); // returns Set {3, 4}
symmetricDifference(setA, setC); // returns Set {1, 2, 5, 6}
difference(setA, setC); // returns Set {1, 2}
é
åã¨ã®é¢ä¿
const myArray = ["value1", "value2", "value3"];
// é常㮠Set ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨ãã¦ã Array ã Set ã«å¤æ
const mySet = new Set(myArray);
mySet.has("value1"); // returns true
// ã¹ãã¬ããæ¼ç®åã使ã£ã¦ãéåãé
åã«å¤æ
console.log([...mySet]); // myArray ã¨å
¨ãåã Array ã表示ããã¾ãã
é
åããéè¤ããè¦ç´ ãåãé¤ã
// é
åããéè¤ããè¦ç´ ãåãé¤ãããã«ä½¿ç¨
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]
æååã¨ã®é¢ä¿
// 大æåå°æåã®åºå¥ããï¼éåã« "F" 㨠"f" ãå
¥ãï¼
new Set("Firefox"); // Set(7) [ "F", "i", "r", "e", "f", "o", "x" ]
// éè¤åé¤ï¼"f" ã¯æååä¸ã« 2 åç¾ãããã1 ã¤ããå
¥ããªãï¼
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