我遇到了一个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;
}
答案 0 :(得分:14)
Array.filter不符合跨浏览器标准,您必须将其原型化到Array上。您还可能想要验证您要过滤的数组从不是'undefined'类型
更新: MDN提供了如何将过滤器原型化到数组上的参考: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter