我遇到了一个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/