是一个if继续一个好的模式,以防止在Javascript中迭代属性时过度嵌套?

Viv*_*ath 5 javascript loops object object-properties for-in-loop

我通常使用此模式迭代对象属性:

for(var property in object) {
   if(object.hasOwnProperty(property)) {
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种过度的缩进,最近有人向我指出我可以通过这样做摆脱它:

for(var property in object) {
   if(!object.hasOwnProperty(property)) {
      continue;
   }

   ...
}
Run Code Online (Sandbox Code Playgroud)

我喜欢这个,因为它没有引入额外的缩进级别.这种模式是否正常,还是有更好的方法?

Cri*_*hez 4

我个人更喜欢:

for(var property in object) if(object.hasOwnProperty(property)) {
     ...
}
Run Code Online (Sandbox Code Playgroud)

没有额外的缩进,因为如果省略花括号, 、 等将采用下一条语句forif由于我们将所有代码都放在if hasOwnProperty块内,因此不需要为for语句添加任何大括号。

本质上它相当于:

for(var property in object) {
   if(object.hasOwnProperty(property)) {
     ...
   } else {
      continue;
   }
}
Run Code Online (Sandbox Code Playgroud)