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

ผลรวมไม่รวมองค์ประกอบเดียวใน JavaScript


สมมติว่าเรามีอาร์เรย์ของจำนวนเต็มเช่นนี้ -

const arr = [12, 1, 4, 8, 5];

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์เช่นอาร์กิวเมนต์เดียวเท่านั้น

ฟังก์ชันควรส่งคืนอาร์เรย์ของจำนวนเต็มสองจำนวนเท่านั้น -

  • จำนวนเต็มแรกควรเป็นผลรวมที่น้อยที่สุดที่เป็นไปได้ขององค์ประกอบอาร์เรย์ทั้งหมด ยกเว้นองค์ประกอบใดองค์ประกอบหนึ่ง

  • จำนวนเต็มที่สองควรเป็นผลรวมสูงสุดขององค์ประกอบอาร์เรย์ทั้งหมด ยกเว้นองค์ประกอบใดองค์ประกอบหนึ่ง

เงื่อนไขเดียวสำหรับเราคือต้องทำเช่นนี้โดยใช้ลูปเดียวเท่านั้น

ตัวอย่างเช่น −

สำหรับอาร์เรย์ข้างต้น ผลลัพธ์ควรเป็น −

const output = [18, 29];

เพราะตัวเลขที่ไม่รวมคือ 12 และ 1 ตามลำดับ

ตัวอย่าง

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

const arr = [12, 1, 4, 8, 5];
const findExtremeNumbers = (arr = []) => {
   let sum = 0;
   let min = Infinity;
   let max = -Infinity;
   for(let i = 0; i < arr.length; i++){
      const curr = arr[i];
      sum += curr;
      if(curr > max){
         max = curr;
      }
      if(curr < min){
         min = curr;
      };
   };
   return [sum - max, sum - min];
};
console.log(findExtremeNumbers(arr));

ผลลัพธ์

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

[18, 29]