Những method cần phải biết khi sử dụng Sets trong javascript?

Nội dung bài viết

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