Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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,我有一个程序,计算学生在课堂上的百分比,并需要最终的输出都在一个盒子里。然而,我的程序目前没有针对每个学生的警告框,我如何解决这个问题 这是密码 <script> function studentName(x) { while(x == '' || x >= 0 || x < 0) { if(x == '') { x = prompt('Cannot leave field blank. Enter

我有一个程序,计算学生在课堂上的百分比,并需要最终的输出都在一个盒子里。然而,我的程序目前没有针对每个学生的警告框,我如何解决这个问题

这是密码

<script>
function studentName(x)
{
    while(x == '' || x >= 0 || x < 0)
    {
        if(x == '')
        {
            x = prompt('Cannot leave field blank. Enter again');
        }

        else if (x >= 0)
        {
            x = prompt('Cannot Enter a number. Enter again')
        }

        else
        {
            x = prompt('Cannot Enter a number. Enter again')
        }

    }
    return(x)
} 


function studentScore(y)
{
    while(y == '' || y > 100 || y < 0 || isNaN(y))
    {

        if (y == '')
        {
            y = parseFloat(prompt("Cannot leave field, blank please enter students score"));
        }

        else if (y > 100 || y < 0)
        {
            y = parseFloat(prompt("Invalid score, please enter a score 0-100"));
        }

        else
        {
            y = parseFloat(prompt("Invalid score, please enter a score 0-100"));
        }

    }
    return(y)
}


function another(z)
{
    while(z == '' && z != 'n' && z != 'N' && z != 'y' && z != 'Y')
    {
    while (z == '' && z != 'n' && z != 'N' && z != 'y' && z != 'Y' )
         {
            z = prompt('Invalid response, would you like to enter another score Y/N ')
         }


    while(z == 'n' || z == 'N')
        {
            Z = prompt('Would you like to enter another student')
        }

    while (z == 'y' || z == 'Y')
        {
            z = prompt("Enter another score")
        }
    }



    return(z)
}

var names = []  
var scores = []
var redo = true
var anotherName
var redo2
var retry = true
var anotherScore
var retry2
var i = 0
var a = 1
var score = 0
    while(redo == true)
    {
        var studentNames = prompt('Enter student name');
                var name = studentName(studentNames);
                names.push(name)
        while(retry == true)
        {
            var studentScores = parseFloat(prompt('Enter student score'));
            score = score + studentScore(studentScores);

            retry = prompt('Enter another score? Y/N');
            retry = another(retry);                   /**/
            if(retry == 'y' || retry == 'Y')
            {
                retry = true
                a++
            }
            else if(retry == 'n' || retry == 'N')
            {
                retry = false
            }
        }
        score = score / a
        scores[i] = score
        redo = prompt('Enter another student? Y/N');
        redo = another(redo);                            /**/

        if(redo == 'y' || redo == 'Y')
        {
            redo = true
            retry = true
            i++;
            a = 1
            score = 0
        }
        else if(redo == 'n' || redo == 'N')
        {
            redo = false
        } 
    }
    var message = ""
    for(y=0; y < names.length; y++)
    {
        alert(names[y] + " - " + scores[y]);
    }

同样,我有一个程序,计算学生在课堂上的百分比,并需要最终输出都在一个框中。然而,我的程序目前对每个学生都在警报框中执行操作。我如何解决这个问题,并将所有学生的姓名放入最后一个警报框中?

您将收到单独的警报,因为您在每次迭代中都使用单独的值调用警报。一种解决方案是将名称和相应的分数组合在一个新数组中,并在此数组上调用alert。在新数组上使用联接“\n”会将数组元素转换为字符串,并用新行分隔每个数组元素,以便格式化。只需将最后一部分更改为:

let roster = [];
for(let y=0; y < names.length; y++) {
    roster.push(names[y] + " - " + scores[y]);
}
alert(roster.join('\n'))

如果你从一开始就把名字和分数保存在一个数组中,比如花名册,那就更好了。通过这种方式,您可以避免在最后进行额外的迭代。

您是否有一些数据来测试它?我没有任何屏幕截图,但您可以将代码复制粘贴到某种文本编辑器中,例如sublime text save程序并运行它来查看问题。只需点击输入一个学生的任意分数,点击n输入另一个分数y输入另一个学生,然后再输入一个分数并响应n输入另一个分数和另一个学生,它将有多少警报框作为您输入的学生数量,我只需要一个框