Javascript -- for循環索引值


一、循環索引

正常的for循環,通過var來聲明的變量,打印變量的結果始終都是數組最后一項的下標索引,如何獲取數組每一項的索引?

1、保存當前值

每一次循環,就將當前數組的下標索引值保存到一個對象里面,這樣就可以通過這個對象獲取數組每一項的下標索引

for(var i=0;i<data.length;i++) {
  // 
  this.index = i
  alert(this.index)
}

這里是將每一次循環的索引保存到window對象的index屬性上

2、閉包

利用閉包內部函數可以調用外部函數的變量和參數的特點,可以通過將每一次循環的索引作為參數傳給內部函數使用,這樣可以確保每一次都是當前索引

for(var i=0;i<data.length;i++) {
  ;(function (index) {
    alert(index)
  })(i);
}

每次循環都必須執行一次函數,那傳入的i必然就是當前的索引,不可能直接循環完了再來執行函數

3、ES6語法-let

let聲明的變量只在當前函數有用,只能被當前聲明的函數內部使用,而var聲明的變量,相當於一個全局變量,所以地方的的值最終都會指向這個var變量,不斷的更新替換

for(let i=0;i<data.length;i++) {
  alert(i)
}

每次循環都將聲明一個新的i變量,i都是一個新的值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM