Heim  >  Artikel  >  Web-Frontend  >  Was ist die Set-Datenstruktur von ES6?

Was ist die Set-Datenstruktur von ES6?

一个新手
一个新手Original
2017-09-09 13:57:551685Durchsuche

ES6: Set

Set verstehen

ES6 stellt das Datenstrukturset bereit. Ähnlich einem Array, jedoch ohne doppelte Werte.

  • Set selbst ist ein Konstruktor, der zum Generieren der Set-Datenstruktur verwendet wird

const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for(let i of s ) {    console.log(i); //2 3 4 5 }
  • Set kann a akzeptieren Ein Array (oder ein Array-ähnliches Objekt) wird als Parameter zum Initialisieren von

var set = new Set([1, 2, 3, 4, 4]);
[...set]; // [1, 2, 3, 4]

verwendet, das für die Array-Deduplizierung verwendet werden kann [...new Set(array)]

-Methode kann verwendet werden. Konvertieren Sie die Set-Struktur in ein Array

Array.from()Array.from(new Set(array))

    Beim Hinzufügen eines Werts zum Set erfolgt keine Typkonvertierung (ähnlich um Gleichheit zu erreichen ===), aber beachten Sie, dass in der Menge hier NaN gleich sich selbst ist. Die anderen beiden Objekte sind immer nicht gleich.
Attribute und Methoden der Set-Instanz
let set = new Set();let a = NaN;let b = NaN;
set.add(a);
set.add(b);
set; //{NaN} 只能加入一个,说明Set内部两个NaN是相等的

    Attribute:
    • : Konstruktor, der Standardwert ist Set-Funktion

      Set.prototype.constructor

    • : Gibt die Gesamtzahl der Mitglieder der Instanz zurück

      Set.prototype.size

    Operationsmethode (Informationen zur spezifischen Implementierung der Methode finden Sie unter: Meine einfache Untersuchung von JS-Sammlungen):
    • : Fügen Sie einen Wert hinzu und geben Sie die Set-Struktur selbst zurück

      add(value)

    • : Einen Wert löschen und einen booleschen Wert zurückgeben

      delete(value)

    • : Einen booleschen Wert zurückgeben, der angibt, ob es sich um ein Mitglied handelt

      has(value)

    • : Alle Mitglieder löschen, kein Rückgabewert

s.add(1).add(2).add(2); //链式写法s.size(); //2s.has(3); //falses.delete(2);
s.has(2); //false
  • 遍历方法

    • keys():返回键名的遍历器(什么是遍历器?Iterator)

    • values():返回键值的遍历器

    • entries():返回键值对的遍历器

    • forEach():使用回调函数遍历每个成员

这里要注意Set的键名和键值是同一个值,所以key()和values()行为是一致的。

let set = new Set(['red', 'green', 'no']);for(let item of set.keys()) {    console.log(item); //red green no}for(let item of set.values()) {    console.log(item); //red green no}for(let item of set.entries()) {    console.log(item); //['red': 'red'] ['green': 'green'] ['no': 'no']}//对每个成员执行某种操作,参数依次为键值、键名、集合本身new Set([1, 2, 3]).forEach((value, key) => console.log(value * 2)); //2 4 6

操作集合

let a = new Set([1, 2, 3]);let b = new Set([4, 3, 2]);//并集let union = new Set([...a, ...b]); //{1, 2, 3, 4}//交集let intersect = new Set([...a].filter(x => b.has(x))); //{2, 3}//差集let difference = new Set([...a].filter(x => !b.has(x))); //{1}

号外:扩展运算符(...)内部使用for...of循环,所以应该知道for of是干嘛的吧

数组的map()filter()可用于Set

let set = new Set([1, 2, 3]);set = new Set([...set].map(x => x * 2)); //set: {2, 4, 6}let set = new Set([1, 2, 3, 4, 5]);set = new Set([...set].filter(x => (x % 2) == 0)); //set {2, 4}

Das obige ist der detaillierte Inhalt vonWas ist die Set-Datenstruktur von ES6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn