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

วิธีการคำนวณเวลาทั้งหมดระหว่างรายการ?


สมมติว่าเรามีอาร์เรย์ที่มีข้อมูลบางอย่างเกี่ยวกับความเร็วของเรือยนต์ระหว่างต้นน้ำและปลายน้ำเช่นนี้ −

ต่อไปนี้เป็นอาร์เรย์ตัวอย่างของเรา -

const arr = [{
   direction: 'upstream',
   velocity: 45
}, {
   direction: 'downstream',
   velocity: 15
}, {
   direction: 'downstream',
   velocity: 50
}, {
   direction: 'upstream',
   velocity: 35
}, {
   direction: 'downstream',
   velocity: 25
}, {
   direction: 'upstream',
   velocity: 40
}, {
   direction: 'upstream',
   velocity: 37.5
}]

เราจำเป็นต้องเขียนฟังก์ชันที่ใช้อาร์เรย์ประเภทดังกล่าวและค้นหาความเร็วสุทธิ (เช่น ความเร็วระหว่างต้นน้ำ - ความเร็วระหว่างปลายน้ำ) ของเรือตลอดเส้นทาง

ดังนั้น มาเขียนฟังก์ชัน findNetVelocity() กัน วนซ้ำบนวัตถุและคำนวณความเร็วสุทธิ โค้ดแบบเต็มสำหรับฟังก์ชันนี้จะเป็น -

ตัวอย่าง

const arr = [{
   direction: 'upstream',
   velocity: 45
}, {
   direction: 'downstream',
   velocity: 15
}, {
   direction: 'downstream',
   velocity: 50
}, {
   direction: 'upstream',
   velocity: 35
}, {
   direction: 'downstream',
   velocity: 25
}, {
   direction: 'upstream',
   velocity: 40
}, {
   direction: 'upstream',
   velocity: 37.5
}];
const findNetVelocity = (arr) => {
   const netVelocity = arr.reduce((acc, val) => {
      const { direction, velocity } = val;
      if(direction === 'upstream'){
         return acc + velocity;
      }else{
         return acc - velocity;
      };
   }, 0);
   return netVelocity;
};
console.log(findNetVelocity(arr));

ผลลัพธ์

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

67.5