在for循环中处理undefined?

Mar*_*ary 1 javascript

假设我的代码如下:

const days = ['Monday', 'Tuesday'];

for (const day of days) {
  console.log(day);
}
Run Code Online (Sandbox Code Playgroud)

打印出"周一"和"周二".

如果由于某种原因,days未定义,那么我会收到运行时错误.

我可以通过输入如下代码来处理这个问题:

if (undefined == days) {
  // logic here
}
Run Code Online (Sandbox Code Playgroud)

对我来说,这看起来有点笨重.有没有办法让for ... of循环忽略未定义的值?基本上,将它视为零长度数组,因此for循环内部的逻辑不会执行,但它也不会抛出错误.

小智 6

您始终可以使用forEach,逻辑或||括号内的块.

(days||[]).forEach(day=>{console.log(day)});
Run Code Online (Sandbox Code Playgroud)

我想你也可以在for循环中使用它.

for(let day of (days||[])) {
   console.log(day);
}
Run Code Online (Sandbox Code Playgroud)