Javascript map | How to Use?

Nội dung bài viết

Trong bài viết hướng dẫn sử dụng về map in javascript, thuộc Series - Mẹo javascript này chúng ta sẽ tìm hiểu Maps trong javascript là gì?, cách tạo và sử dụng map như thế nào?

Maps trong javascript là gì?

Để hiểu được Maps thì phải hiểu được định nghĩa dictionaries.

Dictionaries trong javascript được định nghĩa là một cấu trúc dữ liệu có mục đích chung để lưu trữ một nhóm đối tượng.Dictionaries được liên kết với một tập hợp các khóa và mỗi khóa có một giá trị được liên kết duy nhất. Khi được hiển thị với một khóa, từ điển sẽ chỉ trả về giá trị liên quan.

Ví dụ dưới đây được xem là một Dictionaries:

const results = 'Anonystick'' : 75,
'Aftab' :80,
'James' : 85,
'Manisha': 77,
'Suhana' :87,
'Margaret': 82}

Trước ES6, Javascript không hỗ trợ về dữ liệu cấu trúc, và bây giờ chúng ta được sử dụng thông qua map in javascript. Và bây giờ xem cách tạo và sử dụng map như thế nào?

Đừng nhầm lẫn với khái niệm Map functions nhé mấy anh chai.

JavaScript key, value map

Dưới đây là 3 cách phổ biến để tạo map trong javascript.

  1. Using Constructor
    const emptyMap = new Map();
    assert.equal(emptyMap.size, 0);
    
  2. Pass as Iterable
    const map = new Map([
    [1, 'one'],
    [2, 'two'],
    [3, 'three'],
    ]);
    
  3. Using Set() Method
    const map = new Map()
         .set(1, 'one')
         .set(2, 'two')
         .set(3, 'three')
    

Copying Maps

const original = new Map()
                .set(false, 'no')
                .set(true, 'yes');

const copy = new Map(original);
assert.deepEqual(original, copy);

Cách sử dụng JavaScript map.

set(), get() dùng để đọc hay ghi một key trong map, như sau:

const map = new Map();
map.set('foo', 123);
assert.equal(map.get('foo'), 123);

.has() là phương thức check xem key đó có tồn tại hay không, trong khi delete() cung cấp chức năng xoá key.

const map = new Map([['foo', 123]]);
assert.equal(map.has('foo'), true);
assert.equal(map.delete('foo'), true)

size() chứa trong Map có bao nhiêu entries, ngoài ta clear() là phương thức remove tất cả entries có trong Map object.

const map = new Map()
            .set('foo', true)
            .set('bar', false);
assert.equal(map.size, 2)
map.clear();
assert.equal(map.size, 0)

.keys() cho phép lấy ra tất cả key có trong Map.

const map = new Map()
            .set(false, 'no')
            .set(true, 'yes');

for (const key of map.keys())
{ 
   console.log(key);
}

// Output:
  // false
  // true

values()làm việc y chang như keys() nhưng có đều đó là giá trị.

.entries() lấy ra cả hai bao gồm keys()values().

const map = new Map()
            .set(false, 'no')
            .set(true, 'yes');

for (const entry of map.entries())
{
    console.log(entry);
}

// Output:
   // [false, 'no']
   // [true, 'yes']

Có thể bạn đã bị missing