Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 배열에서 n개 숫자의 가능한 최대 곱을 반환합니다.

<시간/>

Numbers 배열을 첫 번째 인수로 사용하고 숫자(예:n)를 두 번째 인수로 사용하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 배열에서 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