顺序乘以数组编号
Multiplying array numbers sequentially
顺序乘数组数的最好和最简单的方法
我有一个包含一些值的数组:
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,这不是我需要的结果。我想我知道为什么它会这样工作,但我不确定如何编写我需要的代码。
那么,执行此类任务的最佳选择是什么?
编辑。
对于以后看这里的没有经验的人,这是我们找到的最佳选择:
Leo Martin 回答:
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;
}
还有更短的版本:
By the way, you could use Array.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);
只需将 console.log
移到 for
之外 body:
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
:
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);
您可以使用reduce方法将所有数字相乘
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) {
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'
}
这应该会让您走上正确的道路,希望对您有所帮助。
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);
}
}
score = array[i] * array[i];
您正在尝试乘以精确的 exp-rations。
const array = [1, 5, 12, 3, 83, 5];
类似:1*1、5*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)
了解更多信息:https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/Array/map。
顺序乘数组数的最好和最简单的方法
我有一个包含一些值的数组:
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,这不是我需要的结果。我想我知道为什么它会这样工作,但我不确定如何编写我需要的代码。
那么,执行此类任务的最佳选择是什么?
编辑。 对于以后看这里的没有经验的人,这是我们找到的最佳选择:
Leo Martin 回答:
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; }
还有更短的版本:
By the way, you could use
Array.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);
只需将 console.log
移到 for
之外 body:
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
:
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);
您可以使用reduce方法将所有数字相乘
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) {
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'
}
这应该会让您走上正确的道路,希望对您有所帮助。
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);
}
}
score = array[i] * array[i];
您正在尝试乘以精确的 exp-rations。
const array = [1, 5, 12, 3, 83, 5];
类似:1*1、5*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)
了解更多信息:https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/Array/map。