亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法從 for ((i = 0; i < koniec.length; i++)

無法從 for ((i = 0; i < koniec.length; i++)

陪伴而非守候 2021-12-12 10:46:00
在我的 JS 腳本中,我試圖通過 silnia() 索引一個返回數組的函數,我可以手動執行該操作而沒有問題:silnia(5)[1] 但是當我嘗試使用i來自 for 循環的不起作用。koniec = [1,2,3];for (i = 0; i < koniec.length; i++){    // Returns only undefined:    console.log(silnia(5)[i]);    // Works no problem:    // console.log(silnia(5)[2]);}function silnia(n){    var wynikSilni = [];    for(i = 1; i < (n + 1); i++){        wynikSilni.push(i);    }    return wynikSilni;    }
查看完整描述

3 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

您沒有使用var,let或const語句來聲明i,因此它被視為全局變量。


這意味著i您在silnia函數中使用的相同我在for它外部的循環中使用的相同;本質上,它外面的循環運行一次,silniai增加到 6,一旦它返回到for全局范圍內的循環,它就會停止,因為i>koniec.length(ETA:它然后嘗試訪問,sylnia(5)[6]因為i在那個時間點等于 6,這是未定義的)


試試這個:


function silnia(n) {

    var wynikSilni = [];


    for (var i = 1; i < (n + 1); i++) {

        wynikSilni.push(i);

    }

    return wynikSilni;

}

koniec = [1, 2, 3];


for (var i = 0; i < koniec.length; i++) {

    // Returns only undefined:

    console.log(silnia(5)[i]);


    // Works no problem:

    // console.log(silnia(5)[2]);

}


查看完整回答
反對 回復 2021-12-12
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

現在是 2019 年,Arrays 有很多有用的方法可以消除設置和管理循環計數器的需要,正如其他人指出的那樣,這是您問題的根源。


Array.forEach() 是其中最簡單的,將有助于大大簡化您的問題:


koniec = [1,2,3];


// Loop over the knoiec array

// .forEach requires a callback function to execute

// upon each loop iteration. That function will automatically

// be passed 3 arguments: the array item, the item index, the array

koniec.forEach(function(item, index){

    console.log(silnia(5)[index]);

});



function silnia(n){

    var wynikSilni = [];


    for(i = 1; i < (n + 1); i++){

        wynikSilni.push(i);

    }


    return wynikSilni;    

}


查看完整回答
反對 回復 2021-12-12
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您需要聲明變量,否則所有函數都使用全局變量。


function silnia(n) {

    var wynikSilni = [];

    for (var i = 1; i < (n + 1); i++) { // use var or let

        wynikSilni.push(i);

    }

    return wynikSilni;

}


var koniec = [1, 2, 3];


for (var i = 0; i < koniec.length; i++) { // use var or let

    console.log(silnia(5)[i]);

}


查看完整回答
反對 回復 2021-12-12
  • 3 回答
  • 0 關注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號