Hashmap trong JavaScript

Bản đồ chứa các cặp khóa-giá trị trong đó các khóa có thể là bất kỳ kiểu dữ liệu nào

Bản đồ ghi nhớ thứ tự chèn ban đầu của các phím

Bản đồ có một thuộc tính đại diện cho kích thước của bản đồ

Phương pháp bản đồ

MethodDescriptionnew Map[] Tạo một Map objectset mới[] Đặt giá trị cho một khóa trong Mapget[] Lấy giá trị cho một khóa trong Mapclear[] Xóa tất cả các phần tử khỏi Mapdelete[] Xóa phần tử Map được chỉ định bởi một keyhas

Cách tạo bản đồ

Bạn có thể tạo Bản đồ JavaScript bằng cách

  • Truyền một mảng tới new Map[]
  • Tạo Bản đồ và sử dụng Map.set[]

Bản đồ mới[]

Bạn có thể tạo Bản đồ bằng cách chuyển một Mảng tới hàm tạo new Map[]

Ví dụ

// Tạo bản đồ
const fruit = new Map[[
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]];

Tự mình thử »

Bản đồ. bộ[]

Bạn có thể thêm các phần tử vào Bản đồ bằng phương pháp set[]

Ví dụ

// Tạo bản đồ
const fruit = new Map[];

// Đặt giá trị bản đồ
trái cây. set["apples", 500];
quả. set["chuối", 300];
quả. set["cam", 200];

Tự mình thử »

Phương pháp set[] cũng có thể được sử dụng để thay đổi các giá trị Bản đồ hiện có

Bản đồ. được[]

Phương thức

const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
0 lấy giá trị của một khóa trong Bản đồ

Bản đồ. kích thước

Thuộc tính

const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
1 trả về số phần tử trong Bản đồ

Bản đồ. xóa bỏ[]

Phương thức

const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
2 loại bỏ một phần tử Bản đồ

Bản đồ. xa lạ[]

Phương thức

const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
3 xóa tất cả các phần tử khỏi Bản đồ

Bản đồ. có[]

Phương thức

const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
4 trả về true nếu một khóa tồn tại trong Bản đồ

Bản đồ là đối tượng

Map.set[]0 trả về đối tượng

Map.set[]1 Bản đồ trả về true

Đối tượng JavaScript so với Bản đồ

Sự khác biệt giữa Đối tượng JavaScript và Bản đồ

Bản đồ đối tượngKhông thể lặp lại trực tiếpCó thể lặp lại trực tiếpKhông có thuộc tính kích thướcCó thuộc tính kích thướcKhóa phải là Chuỗi [hoặc Ký hiệu]Khóa có thể là bất kỳ kiểu dữ liệuKhóa không được sắp xếp hợp lýKhóa được sắp xếp theo cách chènCó khóa mặc địnhKhông có khóa mặc định

Bản đồ. cho mỗi[]

Phương thức Map.set[]2 gọi một cuộc gọi lại cho từng cặp khóa/giá trị trong Bản đồ

Ví dụ

// Liệt kê tất cả các mục
let text = "";
trái cây. forEach [function[value, key] {
  text += key + ' = ' + value;
}]

Tự mình thử »

Bản đồ. mục[]

Phương thức Map.set[]3 trả về một đối tượng iterator với [key,values] trong Map

Ví dụ

// Liệt kê tất cả các mục nhập
let text = "";
for [const x of fruit. các mục[]] {
  văn bản += x;
}

Tự mình thử »

Bản đồ. phím[]

Phương thức Map.set[]4 trả về một đối tượng lặp với các khóa trong Bản đồ

Ví dụ

// Liệt kê tất cả các khóa
let text = "";
for [const x of fruit. keys[]] {
  text += x;
}

Tự mình thử »

Bản đồ. giá trị[]

Phương thức Map.set[]5 trả về một đối tượng lặp với các giá trị trong Bản đồ

Ví dụ

// Liệt kê tất cả các giá trị
let text = "";
for [const x of fruit. giá trị[]] {
  text += x;
}

Tự mình thử »

Bạn có thể sử dụng phương pháp Map.set[]5 để tính tổng các giá trị trong Bản đồ

Ví dụ

// Tính tổng tất cả các giá trị
let total = 0;
for [const x of fruit. giá trị[]] {
  tổng cộng += x;
}

Tự mình thử »

Đối tượng như Keys

Có thể sử dụng các đối tượng làm chìa khóa là một tính năng quan trọng của Bản đồ

Ví dụ

// Tạo đối tượng
const apple = {name. 'Táo'};
const banana = {name. 'Chuối'};
const cam = {tên. 'cam'};

// Tạo bản đồ
const fruit = new Map[];

// Thêm phần tử mới vào bản đồ
trái cây. set[táo, 500];
quả. set[chuối, 300];
quả. set[cam, 200];

Tự mình thử »

Nhớ. Khóa là một đối tượng [quả táo], không phải là một chuỗi ["quả táo"]

Hỗ trợ trình duyệt

Bản đồ JavaScript được hỗ trợ trong tất cả các trình duyệt, ngoại trừ Internet Explorer

ChromeEdgeFirefoxSafariOpera

Mảng là tuyệt vời để tra cứu các phần tử tại các chỉ mục cụ thể vì tất cả các phần tử trong bộ nhớ đều liền kề nhau, cho phép tra cứu theo thời gian liên tục hoặc

const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
2. Nhưng thường thì chúng ta không hoặc không thể thực hiện tra cứu thông qua các chỉ số. Bản đồ băm và bảng băm là một cách giải quyết vấn đề này, thay vào đó cho phép chúng tôi tra cứu qua
const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
3

Bạn có thể triển khai lớp

const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
4 từ đầu không? . Nhiều ngôn ngữ lập trình có hàm băm hoặc từ điển nguyên thủy tích hợp sẵn [như ký hiệu
const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
2
const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
3 và
const m = new Hashmap[];
m.set['name', 'Jake'];
console.log[m.get['name']];
4], nhưng chúng tôi không muốn sử dụng ký hiệu đó cho bài tập này

Bài học này ban đầu được xuất bản tại https. //algodaily. com, nơi tôi duy trì một khóa học phỏng vấn kỹ thuật và viết các ý tưởng cho các nhà phát triển đầy tham vọng

Có HashMap trong JavaScript không?

Mặc dù JavaScript không có lớp Hashtable riêng, nhưng nó có các Đối tượng và Hashmap[Bản đồ] gốc cung cấp chức năng tương tự khi nó .

Khi nào nên sử dụng HashMap trong JavaScript?

Mục đích chính của HashMap là để giảm thời gian tìm kiếm/truy cập của Mảng từ O[n] xuống O[1] .

Làm cách nào để triển khai HashMap trong JavaScript?

Bạn có thể triển khai Bảng băm trong JavaScript theo ba bước. .
Tạo một lớp HashTable với các thuộc tính ban đầu của bảng và kích thước
Thêm hàm băm [] để chuyển đổi khóa thành chỉ mục
Thêm các phương thức set[] và get[] để thêm và truy xuất các cặp khóa/giá trị từ bảng

Làm cách nào để khởi tạo HashMap trong JavaScript?

Để khởi tạo một Bản đồ với các giá trị, hãy sử dụng hàm tạo Map[], truyền cho nó một mảng chứa các mảng lồng nhau gồm các cặp khóa-giá trị, trong đó phần tử đầu tiên trong mảng là . Mỗi cặp khóa-giá trị được thêm vào Bản đồ mới. Đã sao chép. . Each key-value pair is added to the new Map . Copied!

Chủ Đề