JavaScript 中的一個數組中所有其他數字的乘積


假設我們要編寫一個函式,該函式採用一個數字陣列作為引數。我們必須返回一個新陣列,其中包含每個數字的乘積,但不包含當前正在計算乘積的索引。

例如,如果 arr 索引有 5 個,並且我們正在為索引 1 建立值,那麼索引 0、2、3 和 4 的數字將被相乘。類似地,如果我們為索引 2 建立值,那麼索引 0、1、3 和 4 的數字會相乘,依此類推。

注意 - 保證陣列中的所有元素均不為零。

我們將首先將陣列縮小為其乘積,然後我們將遍歷陣列以找到該索引的值,我們只需按該索引處的原始值除以乘積即可。

實現此演算法的程式碼如下 −

示例

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

輸出

控制檯中的輸出如下 −

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

更新於: 2020 年 8 月 24 日

284 次瀏覽

開始你的職業

完成課程獲得認證

開始
廣告