1. 程式人生 > >for...in...迴圈

for...in...迴圈

for…in 正式寫法為for(i in obj){}.obj表示一個物件,i則表示物件中的屬性和方法。for…in…迴圈遍歷物件內的屬性和方法,不存在下標之類的說法,是無序迴圈。for迴圈相當於是一個有序迴圈。
for…in迴圈可應用於物件的複製,不過其有一個缺點,就是會從原型屬性裡繼承prototype()屬性。
例如:
function getNewArrayTwo() {
var array = [1,2,3,4,5]
Array.prototype.age = 13;(prototype用法可參見連結http://www.jianshu.com/p/9ab09b379788
var result = [];

for(i in array){
result.push(array[i]);
}
alert(result.join(“”));
}
result返回結果【1,2,3,4,5,13】
如何避免從原型屬性裡繼承prototype()屬性,這裡使用hasOwnProperty(name)該函式指示一個物件自身(不包括原型鏈)是否具有制定名稱的屬性。如果有返回true,如果沒有返回false。
function getNewArrayTwo() {
var array = [1,2,3,4,5]
Array.prototype.age = 13;
var result = [];

for(i in array){
if(array.hasOwnProperty(i)){
result.push(array[i]);
}
}
alert(result.join(“”));
}
result返回結果【1,2,3,4,5】