以编程方式确定是否可以在对象上运行 for 循环的最佳解决方案
Programatically the best solution to determine if for loop can be run on object
在研究中,我试图找到最快的方法来确定对象是否有值并且可以在对象上执行for。参考: https://jsperf.com/jquery-each-vs-each-vs-for-loop/2
我曾经这样做过,但是在与一位同事的讨论中,他正在使用.each,我们一起查找了它,发现这两种方法都很慢,需要改进。
if(Object.keys(X).length > 0) {
// Execute For
}
以下是我所知道的:
obj instanceof Object
和
typeof(obj) == "object" and obj !== "null"
因为 null 是一个对象,所以两者都有其缺点,但也许还有另一种更优越的方法。
可以在任何对象上执行for
循环,因此这里没有什么可检查的。也许相反,您需要考虑要迭代的对象上的哪些属性,但这取决于应用程序。
通常,在迭代对象时,代码可能如下所示:
for(var i in obj) {
if(obj.hasOwnProperty(i)) {
//do stuff here...
}
}
hasOwnProperty
检查可确保仅使用添加到对象本身的值,而不使用其原型的值。
相关文章:
- For循环在Jquery中只运行一次
- For循环在调用时未运行
- 如何在angularJS中运行for循环而不使用html标记
- 可能只在for循环内部运行一次代码块
- jQuery:在for循环中运行youtube视频,播放最后一个视频
- 无法在 android 中运行 JavaScript for webview
- 页面对象中的 for 循环未正常运行
- 在延迟时运行javascript for循环
- for循环中的嵌套promise未按预期运行
- 在Javascript中的for循环中运行不同的api
- 在for循环中触发onchange事件只运行一次
- for loop, Math.random() 不按预期运行
- Javascript setInterval for game draw loop未一致运行
- Meteor - 在客户端上的异步回调的 for 循环后运行代码
- 以编程方式确定是否可以在对象上运行 for 循环的最佳解决方案
- QUnit.test 在 for 循环中运行
- 尝试使用 jsrender在 for 循环中的数组上运行函数
- 如何在 Node.js 中完成 for 循环后运行函数
- for 循环函数似乎未运行
- Jquery执行另一个函数在last "for"运行