Computer >> Máy Tính >  >> Lập trình >> Javascript

Javascript Map vs Object - Cái gì và khi nào?

Theo MDN Docs,

Đối tượng Bản đồ giữ các cặp khóa-giá trị và ghi nhớ thứ tự chèn ban đầu của các khóa. Bất kỳ giá trị nào (cả đối tượng và giá trị nguyên thủy) đều có thể được sử dụng làm khóa hoặc giá trị.

Điều quan trọng cần lưu ý ở đây là các đối tượng cũng có thể được sử dụng làm chìa khóa trong bản đồ. Đây không phải là trường hợp của các đối tượng JavaScript. Các đối tượng JS chỉ cho phép các nguyên thủy được sử dụng làm khóa.

Một tính năng khác làm cho nó hữu ích trong một số trường hợp nhất định là nó có thể lặp lại. Và nó có thể lặp lại theo thứ tự chèn. Vì vậy, trong những trường hợp bạn cần duy trì thứ tự của các khóa cũng như có một giá trị được liên kết với nó, bản đồ có thể được sử dụng.

Ví dụ

Ví dụ về cách sử dụng bản đồ -

const myMap = new Map();
const keyString = 'a string',
const keyObj = {},
const keyFunc = function() {};
// setting the values with all kinds of keys
myMap.set(keyString, "String Val");
myMap.set(keyObj, 'Object val');
myMap.set(keyFunc, 'function val');
console.log(myMap.size);
console.log(myMap.get(keyString));

Đầu ra

Điều này sẽ cung cấp đầu ra -

3
String Val