如何将for循环转换为while循环?

时间:2018-06-30 15:47:00

标签: javascript jquery

我正在练习如何执行for / while循环,但似乎无法理解如何将for循环转换为while循环。

这是for循环:

for(var i = 0; i < buttonsDefault.buttons.length; i++) {
    $('body').append("<button>" + buttonsDefault.buttons[i] + "</button>")  
}

我如何使其成为while循环?

while (buttonsDefault.buttons.length > i) {
    $('body').append("<button>" + buttonsDefault.buttons[i] + "</button></div>")    
}

谢谢。

2 个答案:

答案 0 :(得分:1)

在此i循环中,您需要自己管理while的增量。当您这样做时,它看起来很像for循环:

let i = 0;  // start at 0
while(i < buttonsDefault.buttons.length) { // while it's in range
    $('body').append("<button>" + buttonsDefault.buttons[i] + "</button>") 
    i++ // increment
}

如果您查看while循环的结构,就会发现与for循环的第一行的结构相似,并希望理解人们为什么更喜欢使用{{1 }}在这种情况下。

当然,当您使用javascript时,您会发现还有很多其他方法可以遍历数组。

答案 1 :(得分:0)

您也可以使用pop使其更短:

如果buttonsDefault.buttons数组

while( button = buttonsDefault.buttons.pop() ) {
    $('body').append("<button>" + button + "</button>") 
}

或者使用buttonsDefault.buttons组成一个数组,以防其成为jQuery 集合

var buttons = [...buttonsDefault.buttons]; // spread
while( button = buttons.pop() ) {
    $('body').append("<button>" + button + "</button>") 
}