Uzyskanie nieoczekiwanego NaN w ćwiczeniu w Eloquent Javascript rozdział 4, ale błąd nie jest wystarczająco oczywisty, aby mi go odebrać. Czy ktoś mógłby spojrzeć na mój umysł i wskazać mój błąd?Nieoczekiwane wyjście NaN po typof var wyświetla oczekiwany numer typu
/*
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);
I tu jest wyjście Firebug, wyświetlając że typeof total
po pętli w func
sumy for
jest rzeczywiście number
ale jest następnie wyprowadzane jako 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
Każda pomoc doceniona.
'typeof (NaN)' to "liczba". Sprawdź wartość 'numRng' – scrappedcola