javascript中for/in循環(huán)及使用技巧
JavaScript 支持不同類型的循環(huán):
for - 循環(huán)代碼塊一定的次數
for/in - 循環(huán)遍歷對象的屬性
while - 當指定的條件為 true 時循環(huán)指定的代碼塊
do/while - 同樣當指定的條件為 true 時循環(huán)指定的代碼塊
1. in運算符:要求其左邊的運算數是一個字符串,或可以被轉換為字符串,右邊的運算數是一個對象或數組。如果該運算符左邊的值是右邊對象的一個屬性名,則返回true。
例如:
var point={x:1,y:2}; //對象直接量 var has_x="x" in point; //返回true var has_z="z" in point; //返回false var ts="toString" in point;//返回true,toString為繼承方法
2. for/in語句:語法,
for (variable in object)
statement;
提供了一種遍歷對象屬性的方法。
例:
for(var prop in my_object) { document.write("name:"+prop+";value:"+my_object[prop],"<br>"); }
javascript的數組是一種特殊的對象,因此for/in循環(huán)可以像枚舉對象屬性一樣枚舉數組下標。
可以把一個對象的所有屬性名復制到一個數組中,
例:
var o= {x:1,y:2,z:3}; var a=new Array(); var i=0; for (a[i++] in o) ;//空語句,用于初始化數組
3. in運算符與for/in語句不同,for/in語句in的左邊可以是聲明一個變量的var語句,數組的一個元素或者是對象的一個屬性,不能使字符串。
4. 數組常用的存取屬性運算符是“[]”,而不是“.”。使用“[]”來命名屬性名師字符串值,是動態(tài)的,可以在運行時改變,而不是一個標識符“.”。
例:
var stock_name= get_stock_name_from_user();//從用戶處獲取股票名 var share= get_number_of_shares();//得到股票數量 portfolio[stock_name]= share;//動態(tài)地創(chuàng)建數組股票,并為每支股票賦值 將該例子與for/in循環(huán)一起使用,當用戶輸入了他的投資組合,可以計算當前總值 var value= 0; for (stock in portfolio) { value +=get_share_value(stock)*portfolio[stock]; }
stock存取的是每支股票的名字。
portfolio[stock]存取的是每支股票的數量。
for-in循環(huán)
功能:遍歷對象屬性,把屬性名和屬性值都提出來
var obj = { "key1":"value1", "key2":"value2", "key3":"value3" }; function EnumaKey(){ for(var key in obj ){ alert(key); } } function EnumaVal(){ for(var key in obj ){ alert(obj[key]); } } EnumaKey(obj) //key1 key2 key3 EnumaVal(obj) //value1 value2 value3
數組也可以這樣遍歷,但不推薦,因為不能保證順序,而且如果在Array的原型上添加了屬性,這個屬性也會被遍歷出來。
for-in循環(huán)應該用在非數組對象的遍歷上,使用for-in進行循環(huán)也被稱為“枚舉”。
從技術上將,你可以使用for-in循環(huán)數組(因為JavaScript中數組也是對象),但這是不推薦的。因為如果數組對象已被自定義的功能增強,就可能發(fā)生邏輯錯誤。另外,在for-in中,屬性列表的順序(序列)是不能保證的。所以最好數組使用正常的for循環(huán),對象使用for-in循環(huán)。
- JavaScript使用類似break機制中斷forEach循環(huán)的方法
- 詳談js中標準for循環(huán)與foreach(for in)的區(qū)別
- Javascript數組循環(huán)遍歷之forEach詳解
- 全面解析JavaScript里的循環(huán)方法之forEach,for-in,for-of
- js的for in循環(huán)和java里foreach循環(huán)的區(qū)別分析
- javascript forEach通用循環(huán)遍歷方法
- JS數組的遍歷方式for循環(huán)與for...in
- javascript 循環(huán)語句 while、do-while、for-in、for用法區(qū)別
- JavaScript中for..in循環(huán)陷阱介紹
- js中forEach,for in,for of循環(huán)的用法示例小結
相關文章
JS實現點擊發(fā)送驗證碼 xx秒后重新發(fā)送功能
在一些注冊類的網站,經常遇到這樣的需求,點擊發(fā)送驗證碼,xx秒后重新發(fā)送,這樣的功能怎么實現呢,接下來通過本文給大家分享js點擊發(fā)送驗證碼 xx秒后重新發(fā)送功能,需要的朋友參考下吧2019-07-07autojs 螞蟻森林能量自動拾取即給指定好友澆水的實現方法
這篇文章主要介紹了autojs 螞蟻森林能量自動拾取即給指定好友澆水的實現方法,本文通過圖文并茂實例代碼相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05javascript新建標簽,判斷鍵盤輸入,以及判斷焦點(示例代碼)
這篇文章主要介紹了javascript新建標簽,判斷鍵盤輸入,以及判斷焦點(示例代碼)。需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11