Map
Map lưu trữ cặp key-value, ghi nhớ thứ tự chèn, chỉ cho phép key duy nhất (unique).
Cú pháp
new Map([iterable])
Trường hợp 1: Không dùng Map (Object thường)
Object JS chỉ chấp nhận key là string. Nếu dùng object làm key, nó chuyển thành "[object Object]" → key trùng lặp.
Ví dụ
<html> <body> <script> const x = {}; const a = {}; const b = { num:3 }; x[a] = "a"; x[b] = "b"; document.write(JSON.stringify(x)); </script> </body> </html>
Kết quả
{"[object Object]":"b"}
Chỉ key cuối cùng (b) được giữ.
Trường hợp 2: Dùng Map
Map chấp nhận mọi kiểu làm key (object, function, primitive) và giữ thứ tự.
Ví dụ
<html> <body> <script> const a = {}; const b = { num:3 }; const map = new Map(); map.set(a, "a").set(b, "b"); for(let [key, value] of map.entries()){ document.write(JSON.stringify(key) + value); } </script> </body> </html>
Kết quả
{}a {"num":3}b