Javascript 从编程角度来看,确定for循环是否可以在对象上运行的最佳解决方案
在研究中,我试图找到最快的方法来确定一个对象是否有值,以及是否可以在该对象上执行for。 参考: 我过去经常这样做,但在与一位同事讨论时,他使用了这两种方法。我们一起查找,发现这两种方法都很慢,需要改进Javascript 从编程角度来看,确定for循环是否可以在对象上运行的最佳解决方案,javascript,jquery,for-loop,foreach,each,Javascript,Jquery,For Loop,Foreach,Each,在研究中,我试图找到最快的方法来确定一个对象是否有值,以及是否可以在该对象上执行for。 参考: 我过去经常这样做,但在与一位同事讨论时,他使用了这两种方法。我们一起查找,发现这两种方法都很慢,需要改进 if(Object.keys(X).length > 0) { // Execute For } 以下是我所知道的: obj instanceof Object 及 因为null是一个对象,所以两者都有各自的缩进,但也许还有另一种更优越的方法 for的循环可以在任何对象上执行
if(Object.keys(X).length > 0) {
// Execute For
}
以下是我所知道的:
obj instanceof Object
及
因为null是一个对象,所以两者都有各自的缩进,但也许还有另一种更优越的方法 for的
循环可以在任何对象上执行,因此此处无需检查。也许,您需要考虑要迭代的对象的属性,但这取决于应用程序。
通常,迭代对象时,代码可能如下所示:
for(var i in obj) {
if(obj.hasOwnProperty(i)) {
//do stuff here...
}
}
hasOwnProperty
检查确保您只使用添加到对象本身而不是其原型的值。空对象如何?您的代码将以不同的方式对待它们。那么您实际需要什么呢?您是指in
的、of
的还是(i=0;i)在空列表上执行循环的危害是什么?
for(var i in obj) {
if(obj.hasOwnProperty(i)) {
//do stuff here...
}
}