在Eloquent Javascript第4章的练习中获得意外的NaN,但错误不足以让我接受它.有人会介意看看我的错误吗?
/*
Write a range function that takes two arguments, start and end, and returns an array containing all the numbers from start up to (and including) end.
*/
var numRng = [];
function range( start, end ) {
//var numRng = [];
cntr = ( end - start );
for ( i = 0; i <= cntr; i++ ) {
numRng.push( start );
start++;
} // end FOR
//return numRng;
} // end FUNC range
range( 1, 10 );
/*for ( i = 0; i < numRng.length; i++ ) {
console.log( 'Array element ' + numRng.indexOf( 1 + i ) + ' contains range value: ' + numRng[i] );
}*/
/*
Next, write a sum function that takes an array of numbers and returns the sum of these numbers. Run the previous program and see whether it does indeed return 55.
*/
var total = 0;
function sum( numRng ) {
//var total = 0;
for ( i = 0; i <= numRng.length; i++ ) {
//console.log( total );
total += numRng[i];
//console.log( total );
} // end FOR
console.log( typeof total );
console.log( total );
} // end FUNC range
sum( numRng );
console.log( 'Total sum of all element values held by array numRng is: ' + total );
Run Code Online (Sandbox Code Playgroud)
这里是Firebug输出,显示在sum typeof total之后的for循环func确实number然后输出为NaN.
var numRng = []; // seem to require global var ...nt values held by array numRng is: ' + total );
number
NaN
Total sum of all element values held by array numRng is: NaN
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.
问题出在这里
for ( i = 0; i <= numRng.length; i++ )
^
Run Code Online (Sandbox Code Playgroud)
numRng[numRng.length]=> undefined
我更正了下面的代码
var numRng = [];
function range( start, end ) {
//var numRng = [];
cntr = ( end - start );
for ( i = 0; i <= cntr; i++ ) {
numRng.push( start );
start++;
}
}
range( 1, 10 );
var total = 0;
function sum( numRng ) {
for ( i = 0; i < numRng.length; i++ ) {
total += numRng[i];
}
console.log( typeof total );
console.log( total );
}
sum( numRng );
console.log( 'Total sum of all element values held by array numRng is: ' + total );Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |