对象不支持属性或方法'filter'

时间:2011-09-15 14:45:15

标签: javascript internet-explorer-8

我遇到了一个IE8问题,我最初认为是由于缺乏对indexOf()属性的IE8支持,但似乎并非如此。我通过原型实现了indexOf()但仍然保持错误消息 -

对象不支持属性或方法'filter'

我的代码是passArray.filter行的错误输出。

  function consolidatedFilters(passedArray, passedFilter, passedFilterType)
    if (passedFilterType == "specialty")
    {       
        var filteredArray = passedArray.filter(
            function(el)
            {
               for (i in passedFilter) 
               {
                    if (passedFilter[i] == el[8]) 
                    {
                        return true;
                    }
               }
               return false
             }
        );      
        return filteredArray;
    }

1 个答案:

答案 0 :(得分:14)

Array.filter不符合跨浏览器标准,您必须将其原型化到Array上。您还可能想要验证您要过滤的数组从不是'undefined'类型

更新: MDN提供了如何将过滤器原型化到数组上的参考: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter