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

对象不支持属性或方法“过滤器”

我的代码是,它在passedArray.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;
    }

最佳答案

Array.filter不兼容跨浏览器,您必须将其原型(prototype)化到Array上。您可能还需要验证要过滤的数组永远不是typeof'undefined'

更新:
MDN提供了有关如何将过滤器原型(prototype)化到数组的引用:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter

关于javascript - 对象不支持属性或方法 'filter',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7432791/

10-12 00:47