JavaScript 中 for (var i in data) 循環數組項


今天在改代碼的時候發現有很多代碼的循環是用 for(var i in data)寫的,我通常都是用for(var i=0;i<data.length;i++)

就查看了一下,原來這兩個是有區別的,不能等同使用。

<script>
Array.prototype.test = function () { };

function a (){
var arr = [1, 2];
for (var i in arr)
{
alert(i+"-------------"+arr[i]);
}
}
function b(){
var arr = [1, 2];
for(var i =0;i<arr.length;i++){
alert(i+"---------"+arr[i]);
}
}
a();
b();
</script>

我們看到a()會彈出三個對話框,分別是索引值:0、1還多了一個 test, 這個 test 是 Array.prototype.test 擴展得到的。

所以不能把 for (var i in data)  當作是 for (var i = 0; i < data.length; i++) 的簡寫。

 

 

參考:http://www.cftea.com/c/2014/08/6290.asp


免責聲明!

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



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