JavaScript Array shims vs for ... in

JavaScript Array shims vs for ... in

本文关键字:for in vs shims Array JavaScript      更新时间:2023-09-26

我在Chrome上写了一些JavaScript,然后试着在IE8上运行。我遇到的第一件事是缺乏Array.map, Array.filter和所有有用的表兄弟。为了解决这个问题,我添加了一些垫片。

这打破了我所有的for ... in ...循环,像这样:

<>之前>> c = [1];{…}>> for(i in c) {console.log(i)}日志:1日志:indexOf日志:lastIndexOf日志:过滤器之前

我希望它只遍历数组项。有没有办法解决这个问题,还是我需要回去写for(i=0;i<c.length;++i)循环?

您需要清理循环,使用hasOwnProperty, shim将功能添加到数组原型中,并且您最终会循环添加的函数。

for(i in c){
    if(c.hasOwnProperty(i))
    {
        console.log(i);
    }
}

引用:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/hasOwnProperty

http://msdn.microsoft.com/en-us/library/328kyd6z (v = vs.94) . aspx

Crockford on for .. in http://javascript.crockford.com/code.html搜索"hasOwnProperty"