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

Xây dựng mảng tích (product array) trong JavaScript


Chúng ta cần viết hàm nhận mảng số. Hàm xây dựng mảng mới dựa trên mảng gốc. Mỗi phần tử tương ứng của mảng mới là tích của tất cả phần tử mảng gốc trừ phần tử đó.

Ví dụ - arr = [1, 2, 3, 4, 5] -> output = [120, 60, 40, 30, 24]. Phải đạt O(n) time, O(1) space (trừ mảng kết quả).

Ví dụ

Code sau đây:

const arr = [1, 2, 3, 4, 5]; 
const exclusiveProduct = (arr = []) => { 
  const product = arr.reduce((acc, val) => acc * val); 
  const res = []; 
  for (let i = 0; i < arr.length; i++) { 
    res[i] = product / arr[i]; 
  } 
  return res; 
}; 
console.log(exclusiveProduct(arr));

Kết quả

Kết quả trên console:

[120, 60, 40, 30, 24]