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

JavaScript Đếm số phần tử duy nhất trong một mảng đối tượng theo thuộc tính đối tượng?

Giả sử, chúng ta có một mảng đối tượng sau chứa dữ liệu về các đơn hàng được đặt trong một nhà hàng -

const orders = [
   {table_id: 3, food_id: 5},
   {table_id: 4, food_id: 2},
   {table_id: 1, food_id: 6},
   {table_id: 3, food_id: 4},
   {table_id: 4, food_id: 6},
];

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng như vậy. Hàm của chúng ta sẽ đếm số lượng thuộc tính table_id duy nhất trong mảng (tức là số lượng bảng duy nhất mà các đơn đặt hàng được đặt trước).

Và số lượng thuộc tính food_id duy nhất (tức là số lượng món ăn độc đáo được đặt hàng.)

Ví dụ

const orders = [
   {table_id: 3, food_id: 5},
   {table_id: 4, food_id: 2},
   {table_id: 1, food_id: 6},
   {table_id: 3, food_id: 4},
   {table_id: 4, food_id: 6},
];
const countUniques = (orders = []) => {
   const tableObj = {}, foodObj = {};
   orders.forEach(el => {
      tableObj[el.table_id] = null;
      foodObj[el.food_id] = null;
   });
   const tableUniqueIDs = Object.keys(tableObj).length;
   const foodUniqueIDs = Object.keys(foodObj).length;
   return {
      tableUniqueIDs, foodUniqueIDs
   };
};
console.log(countUniques(orders));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

{ tableUniqueIDs: 3, foodUniqueIDs: 4 }