สมมติว่าเรามีอาร์เรย์ของวัตถุต่อไปนี้ที่มีข้อมูลเกี่ยวกับคำสั่งซื้อที่วางไว้ในร้านอาหาร -
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 }