我尝试做一些简单的计算,但我的功能仍然返回NaN
(非数字)。
根据MDN NaN
表示不是数字,所以我尝试转换为Number()
的数字,但仍然返回相同的内容,这里是代码:
function capPow() {
var arr = [];
for (var i = 1 ; i <= 100 ; i++) {
var result = Math.pow(i, 2);
arr.push(result);
}
for (var j = 0 ; i < arr.length ; i++) {
var result2 =+ arr[i];
}
var finfin = Math.pow(result2, 2);
var ending = finfin - result2;
return Number(ending);
}
console.log(capPow());
结果:
NaN
答案 0 :(得分:4)
有一些错误,所以我会一步一步地去。
这个for循环是头痛的根源。
for (var j = 0 ; i < arr.length ; i++) {
var result2 =+ arr[i];
}
您声明了var j
,然后将i
用于&lt;和++比较,然后再次从i
获取索引。还有+ =方法的逆转。另外,result2反复超出范围,因此即使将其修复为+ =也无济于事,因为for循环之外不存在result2。你需要在for循环之外声明它,以便它在你计算finfin时保持存在。
应该是:
var result2 = 0;
for (var j = 0 ; j < arr.length ; j++) {
result2 += arr[j];
}
如有疑问,记录所有内容。在console.log(result2)
之前var finfin
会向您显示result2
未定义整个时间,而console.log(j)
将显示您根本没有输入循环。
答案 1 :(得分:0)
可能你有一个错字:
var result2 += arr[i];
另外,您应该在result2
声明
for
你也有几个错误。这是更新jsfiddle和修复:http://jsfiddle.net/rm3cpk5e/