Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách xử lý Object vs Array cho cặp key/value trong JavaScript

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 600 cuố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?

Ví dụ Map

const players = new Map();
players.set(600, 'Sachin');
players.set(300, 'Brad');
console.log(players.get(600)); // 'Sachin'
Đặc điểmObjectMap
Key typeString/SymbolBất kỳ (object, function, primitive)
Kích thướcObject.keys(obj).lengthmap.size
Iteration orderKhông đảm bảo (ES2015+ đảm bảo insertion order cho string key)Luôn insertion order
Prototype pollutionCó rủi ro (__proto__)An toàn
PerformanceTốt cho string key nhỏTốt cho key phức tạp, add/xóa nhiều