也许很简单,但我想知道将数组值彼此相乘的最佳和最简单方法。
我有一个带有一些值的数组:
const arr = [1, 5, 12, 3, 83, 5];
现在,我想从arr获取所有值的乘积。它应该像这样工作:1 * 5 * 12 * 3 * 83 * 5
我尝试使用此代码:
const arr = [1, 5, 12, 3, 83, 5];
multiply(arr);
function multiply(arr) {
for(i = 0; i < arr.length; i++) {
product = array[i] * array[i];
console.log(product);
}
}
此代码上面的代码是这样的:1 * 1,5 * 5,12 * 12,3 * 3,83 * 83,5 * 5,这不是我需要的结果。我想我知道为什么会这样,但是我不确定如何编写所需的代码。
那么,这类任务的最佳选择是什么?
只需将console.log
移到for
主体之外]
const array = [1, 5, 12, 3, 83, 5];
console.log(multiply(array)); // we log function return value
function multiply(array) {
let score = array[0];
for (i = 1; i < array.length; i++) {
score = score * array[i];
}
return score;
}
顺便说一句,您可以使用Array.reduce
:
Array.reduce
您可以使用reduce方法将所有数字相乘
const array = [1, 5, 12, 3, 83, 5];
const result = array.reduce((acc, value, index) => {
if (index === 0) return value;
acc = acc * value;
return acc;
}, 0);
console.log(result);
已更正您的程序。
const array = [1, 5, 12, 3, 83, 5];
const total = array.reduce((total,num) => total * num, 1);
console.log(total)
希望解决方案不言自明。遍历数组。将每个乘积相乘并将结果存储在同一变量中。
const array = [1, 5, 12, 3, 83, 5];
multiply(array);
function multiply(array) {
var score = 1;
for(i = 0; i < array.length; i++) {
score = score * array[i];
}
console.log(score);
}
const array = [1, 5, 12, 3, 83, 5];
multiply(array);
function multiply(array) {
let product = 1;
for(i = 0; i < array.length; i++) {
product *= array[i];
}
console.log(product);
}
const array = [1, 5, 12, 3, 83, 5];
multiply(array);
function multiply(array) {
var score = array[0];
for(i = 1; i < array.length; i++) {
score = score * array[i];
}
console.log(score);
}
var array = [1, 5, 12, 3, 83, 5];
var result = array.reduce(function(a, b) {
return a * b;
});
console.log(result);
用于计算乘法的最终结果:
const array = [1, 5, 12, 3, 83, 5];
multiply(array);
function multiply(array) {
for(i = 0; i < array.length-1; i++) {
score = array[i] * array[i+1];
console.log(score);
}
}
您是否要求计算的文本表示?如果是这样,请使用此:
const array = [1, 5, 12, 3, 83, 5];
multiply(array);
function multiply(array) {
score = 1;
for(i = 0; i < array.length; i++) {
score = score * array[ i ];
}
console.log(score); // expected result: 74700
}
这应该开始为您提供正确的方法,希望对您有所帮助。
[const array = [1, 5, 12, 3, 83, 5];
multiply(array);
function multiply(array) {
score = '';
for(i = 0; i < array.length; i++) {
score += array[i].toString();
if ( i < array.length -1 ) score += '*';
}
console.log(score); // expected result: '1*5*12*3*83*5'
}
,您正在尝试乘以精确的比例。
score = array[i] * array[i];
类似:1 * 1、5 * 5
您可以乘以 const array = [1, 5, 12, 3, 83, 5];
另一种方法可能是数组函数。
array[i] * i
有关更多信息: const array = [1, 5, 12, 3, 83, 5];
multiply(array);
function multiply(array) {
let product = 1;
`enter code here`for(i = 0; i < array.length; i++) {
product *= array[i];
}
console.log(product);
}
let multiArray = array.map((num, index) => num *index)
console.log(multiArray)
。