试图创建一个对数字求和的Javascript函数
Trying to create a Javascript function that sums up numbers
我对Javascript非常陌生,我正在尝试编写一个求和数字的函数。下面的函数返回"0"而不是总和(我不知道为什么(。
function sumTo(N) {
var total = 0
for (var i = 0; i < N.length; i++) {
total = total + N[i];
}
return total;
};
console.log(sumTo(1,2,3,4,5));
您正试图从一个数字(传递给函数的第一个数字;示例中为1
(中获取length
。数字没有长度,所以得到undefined
,而0 < undefined
为false,所以循环永远不会运行。
任一:
-
将数组传递到
sumTo
console.log(sumTo([1, 2, 3, 4, 5]); // Note ----------^-------------^
或
-
使用
arguments
自动局部变量for (var i = 0; i < arguments.length ++i) { total += arguments[i]; }
或
-
使用ES2015的"rest"参数:
// ES2015+ only! function sumTo(...values) { let total = 0; for (let i = 0; i < values.length; ++i) { total += values[i]; } return total; }
由于您在ES2015中,因此可以使用带有箭头函数的
reduce
(求和是reduce
的完美用例(:// ES2015+ only! function sumTo(...values) { let total = values.reduce((a, b) => a + b); return total; }
或者
for-of
,ES2015的另一个东西:// ES2015+ only! function sumTo(...values) { let total = 0; for (let value of total) { total += value; } return total; }
这是因为N
只是第一个参数,在本例中是1
。1
没有索引,因此N[1]
不起作用。
您需要的是传入一个数组,因为您期望N
具有length
。
console.log(sumTo([1, 2, 3, 4, 5]));
您需要一个数字数组,或者使用arguments对象。
function sumTo(N) {
var total = 0
for (var i = 0; i < N.length; i++) {
total = total + N[i];
}
return total;
}
console.log(sumTo([1, 2, 3, 4, 5]));
带参数
function sumTo(N) {
var total = 0
for (var i = 0; i < arguments.length; i++) {
total = total + arguments[i];
}
return total;
}
console.log(sumTo(1, 2, 3, 4, 5));
使用ES6,可以使用rest参数...
。
function sumTo(...N) {
var total = 0
for (var i = 0; i < N.length; i++) {
total = total + N[i];
}
return total;
}
console.log(sumTo(1, 2, 3, 4, 5));
您也可以使用reduce方法:
var sumTo = ar => ar.reduce((a,b) => a+b);
console.log(sumTo([1, 2, 3, 4, 5])); // 15
如前所述,您应该在数组中发送值:
function sumTo(N) {
var total = 0
for (var i = 0; i < N.length; i++) {
total = total + N[i];
}
return total;
};
console.log(sumTo([1, 2, 3, 4, 5]));
作为替代方案,您可以使用Array.reduce
function sumTo(N) {
return N.reduce(function(p,c){
return p+c
})
};
console.log(sumTo([1, 2, 3, 4, 5]));
相关文章:
- 如何使用jquery对货币格式的数字求和
- 如何在JavaScript中使用此函数对范围内的所有数字求和
- 如何使用javascript对每个表的所有数字求和
- JavaScript对数组中的数字求和
- 无论格式如何,对数字求和正确
- 对正则表达式产生的所有类型的数字求和
- 角度 - 使用函数对数字求和并将其放入视图中
- 用 js 对每行的数字求和
- 求和用户定义的数字
- 试图创建一个对数字求和的Javascript函数
- 在ionic cordova (angularjs)中动态地向屏幕添加输入字段,并对它们的(数字)内容求和
- 在Javascript中,使用for循环对数组中的数字求和
- 在循环时从localStorage中求和数字值
- Javascript按两个数字序列对数组中的数字求和
- 对模板中的数字求和
- 用于求和的字符串到数字
- Javascript不会对数字求和
- 对数字求和并显示它们
- 如何用javascript求和多个(未定义的数字)文本框的数量
- 使用求和方程JAVASCRIPT将它们转换为数字的单词块