Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

รับจำนวนรวมของวัตถุที่เหมือนกันใน JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุที่อธิบายเส้นทางของเที่ยวบินบางเที่ยวบินเช่นนี้ −

const routes = [
   {
      flyFrom: "CDG",
      flyTo: "DUB",
      return: 0,
   },
   {
      flyFrom: "DUB",
      flyTo: "SXF",
      return: 0,
   },
   {
      flyFrom: "SFX",
      flyTo: "CDG",
      return: 1,
   }
];

เราต้องนับว่ามีผลตอบแทน − 0 กี่ครั้งและได้ผลตอบแทนกี่ครั้ง:1.

ผลลัพธ์สุดท้ายควรมีลักษณะดังนี้ -

for the cases where return: 0 appears 2 times --- 1 Stop
for the cases where return: 1 appears 1 time --- Non-stop

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const routes = [
   {
      flyFrom: "CDG",
      flyTo: "DUB",
      return: 0,
   },
   {
      flyFrom: "DUB",
      flyTo: "SXF",
      return: 0,
   },
   {
      flyFrom: "SFX",
      flyTo: "CDG",
      return: 1,
   }
];
const displaySimilar = arr => {
   const count = {};
   arr.forEach(el => {
      count[el.return] = (count[el.return] || 0) + 1;
   });
   Object.keys(count).forEach(key => {
      for(let i = 0; i < count[key]; i++){
         if(key === '0'){
            console.log('1 Stop');
         }
         else if(key === '1'){
            console.log('Non-stop');
         };
      }
   })
};
displaySimilar(routes);

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

1 Stop
1 Stop
Non-stop