Adakah peta es6 jenis rujukan?
Peta ialah jenis rujukan; peta (set) ialah jenis data rujukan baharu dalam es6, yang mewakili hubungan pemetaan data. Data dalam jenis data koleksi peta disimpan dalam cara "kunci/nilai" Anda boleh menggunakan sifat objek sebagai kunci dan menggunakan sifat untuk merujuk nilai peta boleh dibuat menggunakan yang baru, contohnya "const myMap = new Map();" .
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.
Peta ialah jenis rujukan.
peta es6
Sebelum ES6, untuk melaksanakan 'kunci' =>'nilai' dalam JavaScript, yang sering kita panggil pasangan nilai kunci, adalah untuk gunakan Objek untuk melengkapkan. Walau bagaimanapun, kaedah pelaksanaan ini mempunyai masalah dalam senario khas ES6 telah memperkenalkan jenis koleksi baharu yang dipanggil Map, yang membawa mekanisme penyimpanan pasangan nilai kunci sebenar kepada bahasa.
Peta (koleksi) ialah jenis data rujukan baharu dalam es6, yang mewakili hubungan pemetaan data dalam jenis data koleksi peta disimpan dalam cara "kunci/nilai", dan sifat-sifat objek boleh digunakan Sebagai kunci, gunakan sifat untuk merujuk nilai.
Gunakan kata kunci new
untuk membuat seketika peta
let m = new Map(); console.log(m); // Map(0) {}
Dimulakan apabila dibuat:
Lulus dalam parameter tatasusunan dua dimensi (objek boleh lelar, nilai kunci dihantar sebagai tatasusunan secara dalaman)
Untuk setiap subtatasusunan, elemen pertama adalah peta yang sepadan key
, elemen kedua ialah peta yang sepadan value
let m = new Map([[{}, 222], [{}, '123']]); console.log(m); // Map(2) { {} => 222, {} => '123' }
1-2-1 Tambah elemen pemetaan
Tambahkannya melalui kaedah set(), masukkan dua parameter, yang pertama ialah kunci pemetaan , dan Dua nilai dihantar ke peta. Apa yang dikembalikan ialah set pemetaan (bermaksud ia boleh ditambah dalam rantai)
let m = new Map(); m.set('prop', '值'); console.log(m); // Map(1) { 'prop' => '值' }
Nilai kunci berantai
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); console.log(m); // Map(3) { 'prop' => '值', 'prop2' => false, 'num' => { id: 13 } }
1-2 - 2 Memetakan panjang koleksi
Gunakan atribut size
untuk mendapatkan bilangan semasa elemen koleksi
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); console.log(m.size);
1-2 -3 Dapatkan elemen
Dapatkan elemen melalui kaedah get() dan masukkan kunci sasaran
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); console.log(m.get('prop2')); // false
1- 2-4 Padam elemen
Padamkan elemen dalam koleksi yang dipetakan melalui kaedah delete(), mengembalikan nilai Boolean kejayaan atau kegagalan pemadaman
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); m.delete('prop2'); // true console.log(m.get('prop2'), m.size); // undefined 2
1- 2-5 Kesan sama ada unsur wujud
Gunakan kaedah has() untuk mengesan sama ada unsur sasaran wujud dan kembalikan nilai Boolean hasil pengesanan
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); m.delete('prop2'); // true console.log(m.has('prop2'), m.has('num')); // false true
1-2-6 Kaedah elemen jelas
Gunakan kaedah clear() untuk mengosongkan semua elemen dan mengembalikan nilai Boolean yang menunjukkan pembersihan yang berjaya
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); m.clear(); // true console.log(m); // Map(0) {}
peta boleh mengulang elemen mengikut susunan sisipan
Contoh peta akan menyediakan (iterator). Ia boleh menjana bentuk [kunci dalam susunan sisipan , nilai], boleh dilalui melalui kaedah entri() (atau antara muka iterator Symbol.iterator) yang disediakan.
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); console.log(m.entries === m[Symbol.iterator]);// true for(let k1 of m.entries()){ console.log(k1); // [ 'prop', '值' ] // [ 'prop2', false ] // [ 'num', { id: 13 } ] // 遍历的属性即对应映射元素的键值对数组 } for(let k2 of m.keys()){ console.log(k2); // prop // prop2 // num // 遍历的属性对应映射元素的键 } for(let k3 of m.values()){ console.log(k3); // 值 // false // { id: 13 } // 遍历的属性对应映射元素的值 } for(let k4 of m[Symbol.iterator]()){ console.log(k4); // [ 'prop', '值' ] // [ 'prop2', false ] // [ 'num', { id: 13 } ] // 遍历的属性即对应映射元素的键值对数组 }
- Penggunaan memori
Perbezaan dalam penyemak imbas akan menyebabkan penggunaan memori bagi kedua-dua kaedah storan itu berbeza Walau bagaimanapun, berdasarkan saiz memori, peta menyimpan lebih kurang 50% pasangan nilai kunci daripada Objek
- Prestasi sisipan.
Kelajuan sisipan Prestasi peta dan Objek adalah lebih kurang sama, tetapi jika kod tersebut melibatkan bilangan sisipan yang banyak, adalah disyorkan untuk menggunakan peta
- Kelajuan carian
Perbezaannya adalah kecil. Objek adalah lebih baik apabila ia hanya mengandungi sebilangan kecil pasangan nilai kunci
- Padam prestasi
Padam objek() prestasi adalah lemah, manakala padam peta() () mempunyai prestasi yang baik Jika data melibatkan sejumlah besar operasi pemadaman, adalah disyorkan untuk menggunakan peta
[Cadangan berkaitan. : tutorial video javascript, Video Pengaturcaraan】
Atas ialah kandungan terperinci Adakah peta es6 jenis rujukan?. 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



application.yml mentakrifkan koleksi senarai Cara pertama ialah menggunakan anotasi @ConfigurationProperties untuk mendapatkan semua nilai jenis koleksi senarai:kod:status:-200-300-400-500. Tulis kelas entiti yang sepadan fail konfigurasi. Apa yang perlu diperhatikan di sini ialah mentakrifkan Koleksi senarai, mula-mula tentukan kelas konfigurasi Bean, dan kemudian gunakan anotasi @ConfigurationProperties untuk mendapatkan nilai koleksi senarai Di sini kami akan menerangkan peranan anotasi yang berkaitan. @Component menyerahkan kelas entiti kepada pengurusan Spring @ConfigurationPropertie

1. Latar belakang teknikal Dalam pembangunan projek sebenar, kami sering menggunakan perisian tengah caching (seperti redis, MemCache, dll.) untuk membantu kami meningkatkan ketersediaan dan keteguhan sistem. Tetapi dalam banyak kes, jika projek itu agak mudah, tidak perlu memperkenalkan perisian tengah secara khusus seperti Redis untuk meningkatkan kerumitan sistem untuk menggunakan caching. Jadi adakah Java sendiri mempunyai komponen caching ringan yang berguna? Jawapannya sudah tentu ya, dan terdapat lebih daripada satu cara. Penyelesaian biasa termasuk: ExpiringMap, LoadingCache dan pembungkusan berasaskan HashMap. 2. Kesan teknikal untuk merealisasikan fungsi biasa cache, seperti strategi pemadaman lapuk, pemanasan data hotspot 3. ExpiringMap3.

async ialah es7. async dan await ialah penambahan baharu kepada ES7 dan merupakan penyelesaian untuk operasi asynchronous/wait boleh dikatakan sebagai gula sintaktik untuk modul bersama dan fungsi penjana, menyelesaikan kod tak segerak dengan semantik yang lebih jelas. Seperti namanya, async bermaksud "tak segerak".

Kaedah 1. Gunakan HashtableMapashtable=newHashtable(); Ini adalah perkara pertama yang semua orang fikirkan, jadi mengapa ia selamat untuk thread? Kemudian lihat pada kod sumbernya. Kita dapat melihat bahawa kaedah yang biasa kita gunakan seperti put, get, dan containsKey semuanya adalah segerak, jadi ia adalah thread-safe publicsynchronizedbooleancontainsKey(Objectkey){Entrytab[]=table;inthash=key. hashCode( );intindex=(hash&0x7FFFFFFF)%tab.leng

Terdapat banyak cara untuk menukar javabeans dan peta, seperti: 1. Tukar beans kepada json melalui ObjectMapper, dan kemudian menukar json kepada map Namun, kaedah ini adalah rumit dan tidak cekap, 10,000 beans telah ditukar dalam satu gelung. ia mengambil masa 12 saat! ! ! Tidak disyorkan. 2. Dapatkan atribut dan nilai kelas kacang melalui refleksi Java, dan kemudian tukarkannya kepada pasangan nilai kunci yang sepadan dengan peta Kaedah ini adalah yang kedua terbaik, tetapi ia lebih menyusahkan. 3. Melalui kaedah net.sf.cglib.beans.BeanMap di dalam kelas, kaedah ini sangat cekap Perbezaan antara kaedah ini dan kaedah kedua ialah kerana ia menggunakan cache, ia perlu dimulakan apabila mencipta bean untuk yang pertama. masa.

Dalam es5, anda boleh menggunakan fungsi for dan indexOf() untuk mencapai deduplikasi tatasusunan Sintaks "for(i=0;i<array length;i++){a=newArr.indexOf(arr[i]);if(. a== -1){...}}". Dalam es6, anda boleh menggunakan operator spread, Array.from() dan Set untuk mengalih keluar penduaan anda perlu terlebih dahulu menukar tatasusunan menjadi objek Set untuk mengalih keluar pendua, dan kemudian menggunakan fungsi spread atau Array.from() untuk tukar objek Set kembali kepada kumpulan Just.

Arahan peta disediakan oleh modul ngx_http_map_module. Secara lalai, nginx memuatkan modul ini melainkan secara buatan --tanpa-http_map_module. Modul ngx_http_map_module boleh mencipta pembolehubah yang nilainya dikaitkan dengan nilai pembolehubah lain. Membenarkan pengelasan atau pemetaan serentak berbilang nilai kepada berbilang nilai yang berbeza dan storan dalam pembolehubah Arahan peta digunakan untuk mencipta pembolehubah, tetapi hanya menjalankan operasi pemetaan paparan apabila pembolehubah diterima memproses permintaan yang tidak merujuk pembolehubah, ini Modul ini tidak mempunyai kelemahan prestasi. 1.ngx_http_map_module modul arahan penerangan sintaks peta

Mengoptimumkan prestasi peta bahasa Go Dalam bahasa Go, peta ialah struktur data yang sangat biasa digunakan, digunakan untuk menyimpan koleksi pasangan nilai kunci. Walau bagaimanapun, prestasi peta mungkin terjejas apabila memproses sejumlah besar data. Untuk meningkatkan prestasi peta, kami boleh mengambil beberapa langkah pengoptimuman untuk mengurangkan kerumitan masa operasi peta, dengan itu meningkatkan kecekapan pelaksanaan program. 1. Pra-peruntukkan kapasiti peta Apabila membuat peta, kita boleh mengurangkan bilangan pengembangan peta dan meningkatkan prestasi program dengan pra-peruntukan kapasiti. Secara umumnya, kami
