相关疑难解决方法(0)

修复Internet Explorer中的JavaScript数组函数(indexOf,forEach等)

至于详细的其他地方,否则显然是众所周知的,IE浏览器(版本绝对7,并在某些情况下,版本8)不落实的关键功能,特别是Array(如forEach,indexOf等).

这里和那里有许多变通方法,但我想将一组适当的,规范的实现折叠到我们的网站中,而不是复制,粘贴或破解我们自己的实现.我找到了js-methods,看起来很有前景,但我想在这里发帖看看是否有更高度推荐的另一个库.一些杂项标准:

  • 对于浏览器已经实现的那些函数,库应该只是一个无操作(js-methods在这里看起来做得很好).
  • GPL,请尽管LGPL是可以接受的.

javascript internet-explorer cross-browser

137
推荐指数
3
解决办法
8万
查看次数

对象键与数组查找性能

示例1:

["member1", "member2",...,..., "member100000"]
Run Code Online (Sandbox Code Playgroud)

示例2:

{
    "member1": true, // (doesn't really need values, only keys :/)
    "member2": true,
    "...",
    "member100000": true
}
Run Code Online (Sandbox Code Playgroud)

我将成员存储在每个内容的数组中,如示例 1 所示,但这样做我必须迭代数组中的 49999 个项目,才能找到成员 50000,所以我想简单地检查是否在javascript对象中定义特定的键将是一个更好的方法,虽然我不需要存储值,但只检查键是否未定义?

我需要的是能够检查是否例如。“member50000”作为我的数组中的值存在 - 或作为我的对象中的键。

我做了一些基准测试,但我不确定我是否得出了正确的结论,或者我在比较中是否做错了什么:http://jsperf.com/lolda123

根据上述测试结果,是否可以公平地得出以下结论:将键/值对保存在值为布尔值(true)的对象中,并且执行操作if(obj["member50000"])是性能最佳的选项?即使不存在具有给定键的属性?在我看来,根据我的测试结果,检查密钥本身是否存在,在性能方面似乎要昂贵得多,但检查密钥是否存在,确实是我所需要的。

我不关心值,所以我在这里遗漏了一些东西,或者为什么更好的解决方案似乎是通过键查找值,而不是仅仅在对象内部查找键?

javascript

5
推荐指数
1
解决办法
4530
查看次数