我从for循环得到的数组和返回NaN(Javascript)

我从for循环得到的数组和返回NaN(Javascript),javascript,arrays,return,nan,Javascript,Arrays,Return,Nan,下面的函数返回NaN,而不是预期的4。我打赌肯定有一些明显的错误,但我没有看到 function myFunction(arr) { let arrSum = 0 for (let i=0; i<=arr.length; i++) {arrSum += arr[i];} return arrSum; } const myArr = [2,2]; console.log(myFunction(myArr)); 函数myFunction(arr){ 设arrSum=0

下面的函数返回NaN,而不是预期的4。我打赌肯定有一些明显的错误,但我没有看到

function myFunction(arr) {
    let arrSum = 0
    for (let i=0; i<=arr.length; i++) {arrSum += arr[i];}
    return arrSum;
}
const myArr = [2,2];
console.log(myFunction(myArr));
函数myFunction(arr){
设arrSum=0

对于(设i=0;i您需要迭代,直到
i
arr[arr.length]将给出未定义的值,这将使您的arrSum为NaN

函数myFunction(arr){
设arrSum=0

对于(i i=0;i < P> <强>发行< <强> >:<>代码> <代码>循环的限制条件超过数组大小。当前的数组大小为2,循环将重复3次,因为<代码> iSales具有零基索引。您在循环中溢出数组,需要<代码> i < ARL> 。数组。例如[2,2]。reduce((a,b)=>a+b,0)