JavaScript 通过对象属性统计对象数组中唯一元素的数量?


假设,我们有一个包含有关在餐馆下单数据的对象数组 −

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},
];

我们要求写一个 JavaScript 函数来接收一个这样的数组。我们的函数应该计算数组中唯一的 table_id 属性的数量(即,为其预订订单的唯一餐桌数量)。

以及唯一的 food_id 属性的数量(即,订购的唯一菜肴数量)。

示例

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));

输出

而控制台中的输出将是 −

{ tableUniqueIDs: 3, foodUniqueIDs: 4 }

更新于:23-11-2020

720 次浏览

开启你的 职业生涯

完成课程获得认证

开始
广告