Cách lấy các thuộc tính duy nhất của một tập hợp các đối tượng trong một mảng JavaScript

Với một mảng các đối tượng, đây là những gì bạn có thể làm nếu bạn muốn nhận các giá trị của một thuộc tính, nhưng không bị trùng lặp.

Giả sử bạn có một mảng hóa đơn với nội dung này:

const bills = [
  { date: '2018-01-20', amount: '220', category: 'Electricity' },
  { date: '2018-01-20', amount: '20', category: 'Gas' },
  { date: '2018-02-20', amount: '120', category: 'Electricity' }
]

và bạn muốn trích xuất các giá trị duy nhất củacategorythuộc tính của từng mục trong mảng.

Đây là những gì bạn có thể làm:

const categories = [...new Set(bills.map(bill => bill.category))]

Giải trình

Bộlà một cấu trúc dữ liệu mới mà JavaScript có trongES6. Đó là một tập hợp các giá trị độc đáo. Chúng tôi đưa vào danh sách các giá trị tài sản mà chúng tôi nhận được từ việc sử dụngmap(), cách chúng tôi đã sử dụng nó sẽ trả về mảng này:

['Electricity', 'Gas', 'Electricity']

Chuyển qua Set, chúng tôi sẽ xóa các bản sao.

...nhà điều hành trải rộng, sẽ mở rộng các giá trị đã đặt thành một mảng.

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn js khác: