เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของ Numbers ที่มีจำนวนบวกและค่าลบ และส่งคืนค่าผลิตภัณฑ์สูงสุดของตัวเลขสองตัวในการข้ามผ่านครั้งเดียว
มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −
ตัวอย่าง
const arr = [-1, -3, -4, 2, 0, -5];
const arr2 = [2, 3, 5, 7, -7, 5, 8, -5];
const produce = arr => arr.reduce((acc, val) => acc*val);
const maximumProduct = (arr = []) => {
const [first] = arr;
if(!first){
return 0;
};
const creds = arr.reduce((acc, val) => {
const { min, max } = acc;
if(val > max[0]){
max[1] = max[0];
max[0] = val;
return acc;
};
if(val < min[0]){
min[1] = min[0];
min[0] = val;
return acc;
};
if(val > max[1]){
max[1] = val;
return acc;
};
if(val < min[1]){
min[1] = val;
return acc;
};
return acc;
}, {
min: [first, first],
max: [first, first]
});
const { max, min } = creds;
return produce(max) > produce(min) ? produce(max) : produce(min);
};
console.log(maximumProduct(arr));
console.log(maximumProduct(arr2)); ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
20 56