Javascript我在while循环中有一个嵌套的for循环,它';It’没有按预期工作

Javascript我在while循环中有一个嵌套的for循环,它';It’没有按预期工作,javascript,Javascript,我不明白为什么我的代码会无限运行 var stateArray = ["CO", "AK", "CA", "KY", "NM"]; var selectedStates = []; var important = 6 while (important < 9) { let j = Math.floor(Math.random() * 4); for (let i = 0; i < selectedStates.length;

我不明白为什么我的代码会无限运行

 var stateArray = ["CO", "AK", "CA", "KY", "NM"];
    var selectedStates = [];
    var important = 6
    while (important < 9)  {
        let j = Math.floor(Math.random() * 4);
        for (let i = 0; i < selectedStates.length;i++){
            if (stateArray[j] == selectedStates[i]){
                break;
            } else {
                selectedStates.push(stateArray[j]);
                console.log(selectedStates);
                important++
            }
        }
    }
var stateArray=[“CO”、“AK”、“CA”、“KY”、“NM”];
var-selectedStates=[];
重要变量=6
while(重要<9){
设j=Math.floor(Math.random()*4);
for(设i=0;i

如果你能帮助我,那将是令人惊奇的。

如果你想选择3个随机状态,这就是你想要的

var stateArray=[“CO”、“AK”、“CA”、“KY”、“NM”];
var-selectedStates=[];
重要变量=6
while(重要<9){
设j=Math.floor(Math.random()*4);
selectedStates.push(stateArray[j]);
++重要的;
}
console.log(selectedStates)
看起来是什么:

你在while循环中

您还没有在
selectedStates
数组中推送任何内容,因此当
i
已分配
0
selectedStates
的长度也为
0
时,for循环语句如何为真


而这个while循环语句
important<9
总是正确的,因为它不会从代码
selectedStates中的
6

增加。长度始终为零。从技术上讲,不会更改
重要的
值,因为它从未为
循环的块运行
,这就是为什么它是一个无限循环。是的
selectedStates。长度始终为零,由于嵌套在for循环中,因此您的
else
从未运行。您希望得到什么结果?我希望selectedStates数组选择3种不同的状态。