替代 array.some() 方法?
Alternative to array.some() method?
是否有使用 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
您可以添加自己的一些方法
if (!Array.prototype.some)
{
Array.prototype.some = function (func)
{
for (var i in this)
{
if (func(i)) return true;
}
return false;
};
}
我认为您最好的解决方案就是在条目上定制 for 循环。 IE8 不支持大多数数组变异方法。我建议不要用 polyfill 来替换函数,因为你的 polyfill 可能无法有效地替换现代浏览器中的函数。
是否有使用 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
您可以添加自己的一些方法
if (!Array.prototype.some)
{
Array.prototype.some = function (func)
{
for (var i in this)
{
if (func(i)) return true;
}
return false;
};
}
我认为您最好的解决方案就是在条目上定制 for 循环。 IE8 不支持大多数数组变异方法。我建议不要用 polyfill 来替换函数,因为你的 polyfill 可能无法有效地替换现代浏览器中的函数。