for each ……in
阿新 • • 發佈:2018-11-16
使用一個變數迭代一個物件的所有屬性值,對於每一個屬性值,有一個指定的語句塊被執行.
作為ECMA-357(E4X)標準的一部分,for each...in語句已被廢棄,E4X中的大部分特性已被刪除,但考慮到向後相容,for each...in只會被禁用而不會被刪除,可以使用ES6中新的for...of語句來代替.(bug 791343.)
for each...in
是
ECMA-357 (E4X) 標準的一部分, 大部分非Mozilla瀏覽器都沒有實現該標準, E4X並不是 ECMAScript 標準的一部分.
語法
for each (variable in object) {
statement
}
引數
-
variable
-
用來遍歷屬性值的變數,前面的
var
關鍵字是可選的.該變數是函式的區域性變數而不是語句塊的區域性變數.
-
object
- 該物件的屬性值會被遍歷.
-
statement
-
遍歷屬性值時執行的語句. 如果想要執行多條語句, 請用(
{ ... }
) 將多條語句括住.
描述
一些物件的內建屬性是無法被遍歷到的,包括所有的內建方法,例如String物件的indexOf
方法.不過,大部分的使用者自定義屬性都是可遍歷的.
示例
例子: 使用for each...in
警告:永遠不要使用for each...in語句遍歷陣列,僅用來遍歷常規物件,這裡講解了為什麼這麼說.
下面的程式碼片段演示如何遍歷一個物件的屬性值, 並計算它們的和:
var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8}; for each (var item in obj) { sum += item; } print(sum); // 輸出"26",也就是5+13+8的值