是否有使用array.some()的替代方法? 我已经在我的代码中使用了一段时间,但我刚刚得知IE8不支持它。
我的原始代码:
var list = ['Johny', 'Adam', 'Johny'];
var option = 'Johny';
var foundInList = list.some(function (el) {
return el === option;
});
我可以用以下内容替换它:
var test = false;
for (i = 0; i < list.length; i++){
if (list[i] === option){
test = true;
break;
}
}
但是可能有更好的方法来做同样的事情。
请帮忙。 在此先感谢
PS:这是fiddle
答案 0 :(得分:1)
您可以添加自己的方法
if (!Array.prototype.some)
{
Array.prototype.some = function (func)
{
for (var i in this)
{
if (func(i)) return true;
}
return false;
};
}
答案 1 :(得分:1)
我认为这里最好的解决方案只是对条目进行循环定制。 IE8中不支持大多数阵列变异方法。我建议不要使用polyfilling来替换该函数,因为您的polyfill可能无法有效地替换现代浏览器中的函数。