我正在尝试创建一个将所有参数添加到一起的函数。我一直在NaN
。我做错了什么?
function sum() {
var n = arguments.length;
var total = 0;
for(var i = 0; i < n; i++) {
// code here
total += n[i];
}
return total;
}
sum(1,2,3,4);
答案 0 :(得分:2)
您需要从 arguments
获取价值,其中n
只是一个数字,其长度为 arguments
和{ {1}}将n[i]
。添加undefined
结果为undefined
。
NaN
&#13;
答案 1 :(得分:1)
什么是n[i];
?由于n
应该只包含参数array
的长度,因此它本身不是array
。
您需要将total += n[i];
替换为total += arguments[i];
答案 2 :(得分:0)
javaScript的一个典型缺点是关于NaN(非数字)的基本原则是。
NaN(不等于任何东西) - &gt;当它发生时 i)未定义或错误操作的结果
ii)有毒:任何以Nan作为输入的算术运算都会产生NaN。
所以在你的代码中:undefined(n [i])+ number = NaN
<script>
function sum() {
var n = arguments.length;
var total = 0;
for (var i = 0; i < n; i++) {
// code here
total += arguments[i];
}
return total;//returns 10
}
sum(1, 2, 3, 4);
希望这有助于/服务于目的