假设我们必须编写一个将数字数组作为参数的函数。我们必须返回一个包含每个数字的乘积的新数组,但当前正在计算乘积的索引除外。
例如,如果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 ]