Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

คืนค่าผลคูณสูงสุดที่เป็นไปได้ของ n ตัวเลขจากอาร์เรย์ใน JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขเป็นอาร์กิวเมนต์แรก และตัวเลข n เป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันควรคำนวณและคืนค่าผลคูณสูงสุดที่เป็นไปได้ของ n ตัวเลขจากอาร์เรย์

ตัวอย่างโค้ด

โค้ดสำหรับทำสิ่งนี้คือ:

const getHighestProduct = (arr, num) => {
  let prod = 1;
  const sorter = (a, b) => a - b;
  arr.sort(sorter);
  if (num > arr.length || num & 2 && arr[arr.length - 1] < 0) {
    return;
  };
  if (num % 2) {
    prod = arr.pop();
    num--;
  };
  while (num) {
    prod *= arr[0] * arr[1] > arr[arr.length - 2] * arr[arr.length - 1]
      ? arr.shift() * arr.shift() : arr.pop() * arr.pop();
    num -= 2;
  };
  return prod;
}
console.log(getHighestProduct([1, 10, -5, 1, -100], 3));
console.log(getHighestProduct([3, 4, 5, 6, 7], 3));
console.log(getHighestProduct([3, 4, -5, -6, -7], 3));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

5000 210 168