ES6的Set数据结构是什么
ES6:Set
了解Set
ES6提供了数据结构Set。类似于数组,但是没有重复值。
Set本身是一个构造函数,用来生成Set数据结构
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可以接受一个数组(或者类数组对象)作为参数,用来初始化
var set = new Set([1, 2, 3, 4, 4]); [...set]; // [1, 2, 3, 4]
可用于数组去重
[...new Set(array)]
Array.from()
方法可以将Set结构转换为数组Array.from(new Set(array))
向Set加入值时,不会发生类型转换(类似于精确相等===),但是要注意在Set里NaN是等于自身的。另外两个对象总是不相等的。
let set = new Set();let a = NaN;let b = NaN; set.add(a); set.add(b); set; //{NaN} 只能加入一个,说明Set内部两个NaN是相等的
Set实例的属性和方法
属性:
Set.prototype.constructor
:构造函数,默认就是Set函数Set.prototype.size
:返回实例的成员总数操作方法(方法的具体实现见:我对JS集合的简单学习):
add(value)
:添加一个值,返回Set结构本身delete(value)
:删除某个值,返回布尔值has(value)
:返回布尔值,表示是否是成员clear()
:清除所有成员,无返回值
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}
Atas ialah kandungan terperinci ES6的Set数据结构是什么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

ccsvchst.exe ialah fail proses biasa yang merupakan sebahagian daripada perisian Symantec Endpoint Protection (SEP), dan SEP ialah penyelesaian perlindungan titik akhir yang dibangunkan oleh syarikat keselamatan rangkaian terkenal Symantec. Sebagai sebahagian daripada perisian, ccsvchst.exe bertanggungjawab untuk mengurus dan memantau proses berkaitan SEP. Pertama, mari kita lihat SymantecEndpointProtection(

Apabila menggunakan struktur data kompleks dalam Java, Comparator digunakan untuk menyediakan mekanisme perbandingan yang fleksibel. Langkah-langkah khusus termasuk: mentakrifkan kelas pembanding, menulis semula kaedah bandingkan untuk menentukan logik perbandingan. Buat contoh pembanding. Gunakan kaedah Collections.sort, menghantar contoh koleksi dan pembanding.

Pelayar dwi-teras ialah perisian penyemak imbas yang menyepadukan dua teras penyemak imbas yang berbeza. Kernel adalah bahagian teras penyemak imbas, bertanggungjawab untuk memaparkan kandungan web dan melaksanakan skrip web dan fungsi lain. Pelayar tradisional biasanya hanya menggunakan satu kernel, seperti pelayar IE menggunakan kernel Trident, pelayar Chrome menggunakan kernel WebKit/Blink, pelayar Firefox menggunakan kernel Gecko, dsb. Pelayar dwi-teras menyepadukan dua teras berbeza ke dalam satu penyemak imbas, dan pengguna boleh bertukar-tukar antaranya secara bebas mengikut keperluan. Kemunculan pelayar dwi-teras

Jenis rujukan ialah jenis data khas dalam bahasa Go Nilai mereka tidak menyimpan data itu sendiri secara langsung, tetapi alamat data yang disimpan. Dalam bahasa Go, jenis rujukan termasuk kepingan, peta, saluran dan penunjuk. Pemahaman mendalam tentang jenis rujukan adalah penting untuk memahami pengurusan memori dan kaedah pemindahan data bahasa Go. Artikel ini akan menggabungkan contoh kod khusus untuk memperkenalkan ciri dan penggunaan jenis rujukan dalam bahasa Go. 1. Slices Slices ialah salah satu jenis rujukan yang paling biasa digunakan dalam bahasa Go.

Struktur data dan algoritma ialah asas pembangunan Java Artikel ini meneroka secara mendalam struktur data utama (seperti tatasusunan, senarai terpaut, pepohon, dll.) dan algoritma (seperti pengisihan, carian, algoritma graf, dll.) dalam Java. Struktur ini diilustrasikan dengan contoh praktikal, termasuk menggunakan tatasusunan untuk menyimpan skor, senarai terpaut untuk mengurus senarai beli-belah, tindanan untuk melaksanakan rekursi, baris gilir untuk menyegerakkan benang, dan pepohon dan jadual cincang untuk carian dan pengesahan pantas. Memahami konsep ini membolehkan anda menulis kod Java yang cekap dan boleh diselenggara.

cpu ialah unit pemprosesan pusat. Analisis 1 Unit pemprosesan pusat [CPU, Unit Pemprosesan Pusat] ialah litar bersepadu berskala besar, yang merupakan teras pengkomputeran dan teras kawalan komputer. Fungsi utamanya adalah untuk mentafsir arahan komputer dan memproses maklumat data dalam perisian komputer. Tambahan: Apakah yang termasuk dalam CPU? 1 CPU merangkumi komponen pemikiran pengiraan, komponen daftar dan komponen kawalan Komponen pemikiran pengiraan boleh melakukan operasi aritmetik alamat atau titik terapung, operasi anjakan dan operasi pemikiran, dan juga boleh melakukan pengiraan alamat dan. penukaran. Ringkasan/Nota CPU terutamanya menerangkan arahan komputer dan memproses maklumat data dalam perisian komputer.

Pokok AVL ialah pokok carian binari seimbang yang memastikan operasi data yang pantas dan cekap. Untuk mencapai keseimbangan, ia melakukan operasi belok kiri dan kanan, melaraskan subpokok yang melanggar keseimbangan. Pokok AVL menggunakan pengimbangan ketinggian untuk memastikan ketinggian pokok sentiasa kecil berbanding bilangan nod, dengan itu mencapai kerumitan masa logaritma (O(logn)) operasi carian dan mengekalkan kecekapan struktur data walaupun pada set data yang besar.

Gambaran Keseluruhan Rangka Kerja Koleksi Java Rangka kerja pengumpulan Java ialah bahagian penting dalam bahasa pengaturcaraan Java Ia menyediakan satu siri perpustakaan kelas kontena yang boleh menyimpan dan mengurus data. Pustaka kelas kontena ini mempunyai struktur data yang berbeza untuk memenuhi keperluan penyimpanan dan pemprosesan data dalam senario yang berbeza. Kelebihan rangka kerja koleksi ialah ia menyediakan antara muka bersatu, membolehkan pembangun mengendalikan perpustakaan kelas kontena yang berbeza dengan cara yang sama, dengan itu mengurangkan kesukaran pembangunan. Struktur data rangka kerja pengumpulan Java Rangka kerja pengumpulan Java mengandungi pelbagai struktur data, setiap satunya mempunyai ciri unik dan senario yang boleh digunakan. Berikut adalah beberapa struktur data rangka kerja pengumpulan Java yang biasa: 1. Senarai: Senarai ialah koleksi tersusun yang membolehkan elemen diulang. Li
