Computer >> Máy Tính >  >> Lập trình >> Javascript

Tích của tất cả các số khác một mảng trong JavaScript

Giả sử, chúng ta phải viết một hàm nhận một mảng số làm đối số. Chúng tôi phải quay lại một mảng mới với các sản phẩm của mỗi số ngoại trừ chỉ số mà chúng tôi hiện đang tính toán sản phẩm.

Ví dụ:nếu arr có 5 chỉ số và chúng tôi đang tạo giá trị cho chỉ mục 1, các số thứ tự 0, 2, 3 và 4 sẽ được nhân lên. Tương tự, nếu chúng tôi tạo giá trị cho chỉ mục 2, thì các số ở chỉ mục 0, 1, 3 và 4 sẽ được nhân lên, v.v.

Lưu ý - Đảm bảo rằng tất cả các phần tử bên trong mảng đều khác không.

Trước tiên, chúng ta sẽ giảm mảng thành sản phẩm của nó và sau đó chúng ta sẽ lặp lại mảng để tìm giá trị cho chỉ mục đó, chúng ta chỉ cần chia sản phẩm cho giá trị ban đầu tại chỉ mục đó.

Mã để thực hiện việc này sẽ là -

Ví dụ

const arr = [12, 10, 8, 6, 5, 2];
const produceArray = (arr) => {
   const product = arr.reduce((acc, val) => acc*val);
   return arr.map(el => {
      return product/el;
   });
};
console.log(produceArray(arr));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[ 4800, 5760, 7200, 9600, 11520, 28800 ]