在 Javascript 数组中将数字彼此相除
Dividing numbers between each other in a Javascript array
我有一组随机生成的数字。
我想创建一个除所有这些数字的函数。基本上,假设数组 [5, 7, 6, 8, 2] 中有 5 个数字,我希望输出等于 5 / 7 / 6 /8 / 2
array = [5, 7, 6, 8, 2];
var total = 1;
for(var i = 0; i < array.length; i++) {
total = array[i] / total;
}
return total;
这是我目前所做的,但输出不正确。知道我哪里做错了吗?
试试这个...
array = [5, 7, 6, 8, 2];
var total = array[0];
for(var i = 1; i < array.length; i++) {
total = array[i] / total;
}
return total;
试试这个。它使用数组的 reduce method along with es6 arrow functions which makes it a one liner. You can use babel 将 es6 语法转换为 es5.
var arr = [5, 7, 6, 8, 2];
arr.reduce((prev,curr) => prev/curr);
ES5 版本:
var arr = [5, 7, 6, 8, 2];
arr.reduce(function(prev, curr) {
return prev/curr;
});
如您所见in the docs,Array.reduce() 会将值列表减少为一个值,循环遍历列表,应用回调函数并将return一个新的列表。在该回调中,您可以访问四个参数:
previousValue: 如果你在回调函数后传递一个参数,previousValue 将采用该值,否则它将是数组中的第一项。
currentValue:循环中的当前值。
index: 循环中当前项目的索引。
数组:列表
你的数学基本上倒退了。使用您的方法,您希望逐步除以总数,而不是逐步除以总数。
var total = array[0];
for (var i = 1; i < array.length; i++)
total = total / array[i];
return total;
好吧,你搞砸了总数,你一直用每个新数字除以结果。您只需翻转“/”运算符即可。
array = [5, 7, 6, 8, 2];
var total = array[0];
for(var i = 1; i < array.length; i++) {
total = total/array[i];
}
return total;
我有一组随机生成的数字。 我想创建一个除所有这些数字的函数。基本上,假设数组 [5, 7, 6, 8, 2] 中有 5 个数字,我希望输出等于 5 / 7 / 6 /8 / 2
array = [5, 7, 6, 8, 2];
var total = 1;
for(var i = 0; i < array.length; i++) {
total = array[i] / total;
}
return total;
这是我目前所做的,但输出不正确。知道我哪里做错了吗?
试试这个...
array = [5, 7, 6, 8, 2];
var total = array[0];
for(var i = 1; i < array.length; i++) {
total = array[i] / total;
}
return total;
试试这个。它使用数组的 reduce method along with es6 arrow functions which makes it a one liner. You can use babel 将 es6 语法转换为 es5.
var arr = [5, 7, 6, 8, 2];
arr.reduce((prev,curr) => prev/curr);
ES5 版本:
var arr = [5, 7, 6, 8, 2];
arr.reduce(function(prev, curr) {
return prev/curr;
});
如您所见in the docs,Array.reduce() 会将值列表减少为一个值,循环遍历列表,应用回调函数并将return一个新的列表。在该回调中,您可以访问四个参数:
previousValue: 如果你在回调函数后传递一个参数,previousValue 将采用该值,否则它将是数组中的第一项。
currentValue:循环中的当前值。
index: 循环中当前项目的索引。
数组:列表
你的数学基本上倒退了。使用您的方法,您希望逐步除以总数,而不是逐步除以总数。
var total = array[0];
for (var i = 1; i < array.length; i++)
total = total / array[i];
return total;
好吧,你搞砸了总数,你一直用每个新数字除以结果。您只需翻转“/”运算符即可。
array = [5, 7, 6, 8, 2];
var total = array[0];
for(var i = 1; i < array.length; i++) {
total = total/array[i];
}
return total;