如何将long for循环分解为较小但可读性更高的片段,仍然可以执行?

时间:2019-02-03 19:21:44

标签: javascript arrays for-loop scope compare

在我的一个项目中,我需要做一个很长的for循环,其中包含9个不同的if / else语句。我正在尝试编写更干净,更可维护和可读的代码。我希望可以将此for循环分解为一系列较小的函数。

我不确定如何执行此操作,因此尝试了此操作,并在函数中编写了一个for循环,在另一个条件中编写了条件if else语句,并尝试在for循环中调用它。 由于我未定义,因此未产生期望的结果。 我了解这是因为范围。我的问题是,有没有办法分解这样的for循环?

代码如下:

let x = 5;
let y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

const compare = () => {
  if (x == y[i]) {
    alert('hello');
  }
}
const loop = () => {
  for (let i = 0; i < y.length; i++) {
    compare();
  }
}

loop();

2 个答案:

答案 0 :(得分:1)

简单传递“ i”作为参数以比较功能,

let x = 5;
let y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const compare = (i) => {
 if (x == y[i]) {
  alert('hello');
   } 
}
const loop = () => {
 for (let i = 0; i < y.length; i++) {
   compare(i);
 }
}

loop();

答案 1 :(得分:0)

您可以改用forEach。

window.onload = () =>{
let x = 5;
let y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

const loop = ()=>{
    y.forEach(item => {if(item===x) alert('hello')})
     
    }    
loop();
}