เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของ Numbers เท่านั้น ฟังก์ชันควรเตรียมอาร์เรย์ขององค์ประกอบดังกล่าวสามรายการจากอาร์เรย์ที่ให้ผลผลิตมากที่สุดในบรรดาองค์ประกอบสามองค์ประกอบใดๆ ของอาร์เรย์ ในที่สุดฟังก์ชันควรส่งคืนผลคูณขององค์ประกอบทั้งสามนั้น
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตเป็น −
const arr = [-10, 7, 29, 30, 5, -10, -70];
จากนั้นผลลัพธ์ควรเป็น −
const output = 21000
เพราะเลขสามตัวคือ 30, -10, -70
เราจะเห็นว่าอาร์เรย์สามารถหรืออาจจะมีองค์ประกอบเชิงลบ ดังนั้น ในกรณีเช่นนี้ ผลิตภัณฑ์สูงสุดจะมากกว่าของสองตัวนี้ −
min1 * min2 * max1 max1 * max2 * max3
ดังนั้นเราจะแก้มันแบบนี้
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [-10, 7, 29, 30, 5, -10, -70];
const threeProduct = (arr = []) => {
const sorter = (a, b) => a -b;
arr.sort(sorter);
let pro1 = 1, pro2 = 1;
let len = arr.length - 1;
for (let i = len; i > len - 3; i--) {
pro1 = pro1 * arr[i];
};
pro2 = arr[0] * arr[1] * arr[len];
return Math.max(pro1, pro2);
}
console.log(threeProduct(arr)); ผลลัพธ์
ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -
21000