首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Array.prototype.find()对IE11

Array.prototype.find()对IE11
EN

Stack Overflow用户
提问于 2019-03-13 09:34:10
回答 2查看 2K关注 0票数 2

https://caniuse.com/#search=find声明IE11不支持find()方法。

同时,我正在IE11中测试这个find()方法,没有发现任何错误行为的痕迹。

我还在IE11中测试了代码

代码语言:javascript
复制
function isPrime(element, index, array) {
  var start = 2;
  while (start <= Math.sqrt(element)) {
    if (element % start++ < 1) return false;
  }
  return (element > 1);
}

console.log([4, 5, 8, 12].find(isPrime)); // 5

来自SO: Array.prototype.find() is undefined

是的,在IE11中,它返回预期的结果5,而不是TypeError:未定义不是一个函数,正如SO: Array.prototype.find() is undefined在2014年指出的那样。

所以..。我是不是漏掉了什么,IE11真的没有在Array.prototype.find上正常工作,或者最近一次更新IE11是为了支持这个方法,而这些更新是在一段时间之前(但晚于2014年讨论过的SO问题)?

当说https://caniuse.com/#search=find不支持Array.prototype.find时,IE11是正确的吗?有证据吗?

谢谢。

UPD:这是我的IE11的屏幕:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-13 09:39:01

你所读的一切都是正确的。你的测试有缺陷。也许您包括了一个在IE11中添加了该方法的Polyfill。

票数 6
EN

Stack Overflow用户

发布于 2019-03-13 09:53:01

您可以尝试以下步骤来验证:

  1. 在IE中打开一个空白选项卡。
  2. 在开发工具中打开控制台。
  3. 输入以下代码:[1,2,3].find(function(n) { !!n; })
    • 如果上面的代码抛出错误(它应该这样做),那么您使用的是多填充。因此,您的代码不会中断。
    • 如果它有效的话,唯一的解释就是不知怎么的,一些更新增加了它的定义。但这是非常不可能的,因为微软已经停止了对它的支持。

我得到的是:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55138469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档