Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何制作JavaScript';而';环更优雅?_Javascript - Fatal编程技术网

如何制作JavaScript';而';环更优雅?

如何制作JavaScript';而';环更优雅?,javascript,Javascript,我做了一个JavaScript“while”循环,不断向数组中添加1到10的随机数,直到随机数为9或10 function random() { return Math.floor(Math.random() * (10)) + 1; } var array = []; var element = 0; while (element < 9) { element = random(); if (element < 9) { array.pus

我做了一个JavaScript“while”循环,不断向数组中添加1到10的随机数,直到随机数为9或10

function random() {
    return Math.floor(Math.random() * (10)) + 1;
}

var array = [];
var element = 0;
while (element < 9) {
    element = random();
    if (element < 9) {
        array.push(element);
    }
}
console.log(array);
函数随机(){
返回Math.floor(Math.random()*(10))+1;
}
var数组=[];
var元素=0;
while(元素<9){
元素=随机();
if(元素<9){
array.push(元素);
}
}
console.log(数组);
我有两个问题

  • 如何使“while”循环更优雅-不使用(元素<9)两次

  • 我如何才能以更优雅的方式完成这项工作,而不使用“while”循环


  • 要回答第一个问题,您可以使用随机值初始化
    元素

    var element = random();
    while (element < 9) {
        array.push(element);
        element = random();
    } 
    

    您甚至不需要在外部声明它,或者在多个位置调用
    random()

    您肯定需要
    while
    循环,因为您在条件为真的情况下执行某些操作。尝试
    while((element=random())<9)array.push(element)
    @Santi他们在循环中生成一个新的随机数,因此这是这个特定循环所需要的algorithm@AndrewLi我注意到了这一点并删除了我的评论,不过我想我应该重新排序
    random()
    .push
    ,将
    元素初始化为
    random()
    ,而不是
    0
    。编辑:似乎是cᴏʟᴅsᴘᴇᴇᴅ 虽然尼特的答案可能是最好的,但他和我的建议是一样的。@NiettheDarkAbsol这是比我建议的更好的选择。我应该删除我的答案吗?@NiettheDarkAbsol这正是我想要的-一步完成作业并检查。谢谢
    while ((var element = random()) < 9) {
        array.push(element);
    }