Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Trả về tích lớn nhất có thể của n số từ mảng trong JavaScript


Cần viết hàm JavaScript nhận mảng số làm đối số đầu tiên và số n làm đối số thứ hai. Hàm tính và trả về tích lớn nhất có thể của n số từ mảng.

Ví dụ

Mã thực hiện như sau:

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));

Kết quả

Kết quả trong console sẽ là:

5000 210 168