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 ]
廣告