Javascript -- for循環索引值

1、循環索引

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

一、保存當前值

每一次循環,就將當前數組的下標索引值保存到一個對象裏面,這樣就能夠經過這個對象獲取數組每一項的下標索引數組

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

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

二、閉包

利用閉包內部函數能夠調用外部函數的變量和參數的特色,能夠經過將每一次循環的索引做爲參數傳給內部函數使用,這樣能夠確保每一次都是當前索引函數

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

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

三、ES6語法-let

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

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

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

相關文章
相關標籤/搜索