函数返回意外结果

时间:2020-01-24 16:26:20

标签: javascript

我编写了一个简单的函数,该函数是我目前阅读的有关JS的书中的练习之一。

function range(start, end) {
    let array = [];

    for(start; start <= end; start++) {
        array.push(start)
    }

    return array;
}

function sum(array) {
    let result = 0;

    for(let i = 0; i <= array.length; i++) {
        result += array[i];
    }

    return result;
}

我使用sum(range(1, 10)),它返回NaN而不是55。那么为什么不返回数字而是返回NaN

1 个答案:

答案 0 :(得分:7)

i <= array.length应该是i < array.length。数组从第零个索引开始,因此最后一个元素将在索引array.length - 1处。

function range(start, end) {
    let array = [];

    for(start; start <= end; start++) {
        array.push(start)
    }

    return array;
}

function sum(array) {
    let result = 0;

    for(let i = 0; i < array.length; i++) {
        result += array[i];
    }

    return result;
}

console.log(sum(range(1, 10)));