Jadual Kandungan
ES6:Set
了解Set
Set实例的属性和方法
操作集合
Rumah hujung hadapan web tutorial js ES6的Set数据结构是什么

ES6的Set数据结构是什么

Sep 09, 2017 pm 01:57 PM
struktur data apa yang

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 }
Salin selepas log masuk
  • Set可以接受一个数组(或者类数组对象)作为参数,用来初始化

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

可用于数组去重[...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是相等的
Salin selepas log masuk

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
Salin selepas log masuk
  • 遍历方法

    • 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
Salin selepas log masuk

操作集合

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}
Salin selepas log masuk

号外:扩展运算符(...)内部使用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}
Salin selepas log masuk

Atas ialah kandungan terperinci ES6的Set数据结构是什么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah jenis proses ccsvchst.exe? Apakah jenis proses ccsvchst.exe? Feb 19, 2024 pm 11:33 PM

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(

Bandingkan struktur data kompleks menggunakan perbandingan fungsi Java Bandingkan struktur data kompleks menggunakan perbandingan fungsi Java Apr 19, 2024 pm 10:24 PM

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.

Apakah pelayar dwi-teras? Apakah pelayar dwi-teras? Feb 20, 2024 am 08:22 AM

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

Pemahaman mendalam tentang jenis rujukan dalam bahasa Go Pemahaman mendalam tentang jenis rujukan dalam bahasa Go Feb 21, 2024 pm 11:36 PM

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 dan algoritma data Java: penjelasan mendalam Struktur dan algoritma data Java: penjelasan mendalam May 08, 2024 pm 10:12 PM

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.

Apakah CPU? Apakah CPU? Feb 22, 2024 pm 05:55 PM

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.

Struktur data PHP: Keseimbangan pepohon AVL, mengekalkan struktur data yang cekap dan teratur Struktur data PHP: Keseimbangan pepohon AVL, mengekalkan struktur data yang cekap dan teratur Jun 03, 2024 am 09:58 AM

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.

Analisis penuh rangka kerja pengumpulan Java: membedah struktur data dan mendedahkan rahsia storan yang cekap Analisis penuh rangka kerja pengumpulan Java: membedah struktur data dan mendedahkan rahsia storan yang cekap Feb 23, 2024 am 10:49 AM

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

See all articles