Khi cần ánh xạ key → value (tra cứu nhanh), Object (hoặc Map) là lựa chọn tự nhiên. Array chỉ phù hợp cho danh sách có thứ tự, index số.
Dùng Object (Plain Object)
var players = {
600: 'Sachin',
300: 'Brad'
};
- Key tự động chuyển thành string (
"600","300"). - Tra cứu O(1) trung bình.
- Key trùng sẽ ghi đè (key
600cuối cùng thắng).
Mở rộng thêm giá trị
var players = {
900: 'Sachin',
300: 'Brad',
700: 'Steve',
200: 'Rahul',
600: 'Kevin',
500: 'David'
};
Khi nào dùng Map thay vì Object?
| Đặc điểm | Object | Map |
|---|---|---|
| Key type | String/Symbol | Bất kỳ (object, function, primitive) |
| Kích thước | Object.keys(obj).length | map.size |
| Iteration order | Không đảm bảo (ES2015+ đảm bảo insertion order cho string key) | Luôn insertion order |
| Prototype pollution | Có rủi ro (__proto__) | An toàn |
| Performance | Tốt cho string key nhỏ | Tốt cho key phức tạp, add/xóa nhiều |