Nội dung bài viết
Video học lập trình mỗi ngày
Những ngày qua chúng ta cũng khá tập trung vào những khái niệm trong ES6 như Closures, IIFE, Destructuring mà chúng ta quên mất một object, có thể nói object này là một object đặt biệt trong ES6, nó giúp chúng ta có thể tạo một collection không chứa những giá trị trùng nhau.
Nó không kén chọn các kiểu dữ liệu, các giá trị được lưu trữ trong một collection có thể là các kiểu nguyên thủy (string, number, booleans) hoặc các object (object literals, arrays) Đó chính là Set.
Kể từ khi được giới thiệu bới ES6 thì Set() đã được sử dụng rộng rãi và giúp những developer tiết kiệm được rất nhiều thời gian trong việc xử lý collection, nhưng remove duplicate...
Tham gia cùng chúng tôi:
Facebook: Cộng đồng lập trình javascript
Facebook Thảo luận về Javascript, ReactJS, VueJS, AngularJS Việt Nam
1 - Initialize a Set
Chúng ta có thể sử dụng Set() constructor để tạo một empty object.
const birds = new Set();
Hoặc chúng ta có thể tạo một collection kiểu iterable object như ví dụ bên dưới.
const birds = new Set(['🐦', '🦉', '🦆', '🦅']);
Thậm chí
const fruits = new Set('🍒🍇🍉🍓🍑');
2 - Method of Set().
Dưới đây, một ví dụ đơn giản thể hiện cơ bản và một vài method có sẵn trên Set() như (add, size, has, forEach, delete và clear)
let animals = new Set(); animals.add('🐷'); animals.add('🐼'); animals.add('🐢'); animals.add('🐿'); console.log(animals.size); // 4 animals.add('🐼'); console.log(animals.size); // 4 console.log(animals.has('🐷')); // true animals.delete('🐷'); console.log(animals.has('🐷')); // false animals.forEach(animal => { console.log(`Hey ${animal}!`); }); // Hey 🐼! // Hey 🐢! // Hey 🐿! animals.clear(); console.log(animals.size); // 0
Ở đây, một ví dụ khác, trong đó chúng ta truyền vào một array để create collection. Lưu ý cách array khởi tạo deconstructedc, nhưng một array được add vào sau vẫn ở dạng array:
let myAnimals = new Set(['🐷', '🐢', '🐷', '🐷']); myAnimals.add(['🐨', '🐑']); myAnimals.add({ name: 'Rud', type: '🐢' }); console.log(myAnimals.size); // 4 myAnimals.forEach(animal => { console.log(animal); }); // 🐷 // 🐢 // ["🐨", "🐑"] // Object { name: "Rud", type: "🐢" }
String cũng có thể sử dụng với Set().
console.log('Only unique characters will be in this set.'.length); // 43 let sentence = new Set('Only unique characters will be in this set.'); console.log(sentence.size); // 18
#Iterating over Sets
Chúng ta cũng có thể sử dụng forEach để get value trong collection.
const flowers = new Set(['🌷', '🌹', '🌻', '🌸']); flowers.forEach(flower => { console.log(`Hey ${flower}!`) }); // Hey 🌷! // Hey 🌹! // Hey 🌻! // Hey 🌸!
or for... of
for (const flower of flowers) { console.log(flower); }
Keys and Values
Set() cũng có values() và keys() giống như method của Maps(). Chỉ khác một chỗ là key() là alias của value() mà thôi. Chúng ta xem ví dụ sau
const fruits = new Set('🍒🍇🍉🍓🍑'); for (const k of fruits.keys()) { console.log(k); } for (const v of fruits.values()) { console.log(v); }
#Kết Luận
Tham gia cùng chúng tôi:
Facebook: Cộng đồng lập trình javascript
Facebook Thảo luận về Javascript, ReactJS, VueJS, AngularJS Việt Nam
Sets là một loại object mới được giới thiệu trong ES6 cho phép bạn tạo create collections of values.
Một value có thể là nguyên thủy hoặc object và giá trị duy nhất trong collection đó. Và đó là một tính năng hữu ích, giúp developers tiết kiệm được thời gian xử lý các công việc như check duplication...
Tham khảo thêm tại : https://attacomsian.com/blog/sets-javascript#keys-and-values