Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 如何在Java脚本中用逗号拆分数组后显示其内容_Javascript_Arrays_Output_Comma - Fatal编程技术网

Javascript 如何在Java脚本中用逗号拆分数组后显示其内容

Javascript 如何在Java脚本中用逗号拆分数组后显示其内容,javascript,arrays,output,comma,Javascript,Arrays,Output,Comma,我对Javascript相当陌生,在过去的几天里,我很快就学会了Javascript,我花了几个小时盯着我的代码,试图找出它为什么不能按我预期的方式工作,我想我会把它贴在这里 无论如何,我的问题是如何在逗号分割后显示数组的全部内容。我的代码如下。我的代码只打印出在提示下输入的最后一个数字集 非常感谢您的帮助 var gradeinfo = new Object(); { coursecode = new Array; grade = new Array; }; var ch

我对Javascript相当陌生,在过去的几天里,我很快就学会了Javascript,我花了几个小时盯着我的代码,试图找出它为什么不能按我预期的方式工作,我想我会把它贴在这里

无论如何,我的问题是如何在逗号分割后显示数组的全部内容。我的代码如下。我的代码只打印出在提示下输入的最后一个数字集

非常感谢您的帮助

var gradeinfo = new Object(); {

    coursecode = new Array;
    grade = new Array;

};

var changer = function (y) {

    finalgradeinfo = new Array;
    finalgradeinfo = y;

    function newresults() {

        var i = 0;
        finalgradeinfo[i] = y;
        i + 1;

    }
    return finalgradeinfo;
}

do {

    var entry = prompt("Enter a course code and grade seperated by a comma");

    if (entry != null && entry != "") {

        var counter;
        var entryvalid = new Array;
        entryvalid = entry.split(",");
        changer(entryvalid);

        x = true;

    } else {

        x = false;
    }

} while (x != false);

console.log(finalgradeinfo);
我的函数需要包含闭包,因此如果它看起来完全错误,我会提前道歉。

Split已经创建了一个数组。因此,如果您输入1,2,3,当您拆分它时,会得到如下数组:
[“1”、“2”、“3”]
。在
for
循环中,您将从原始输入中获取字符,而不是从数组中获取字符。为了添加它们,您需要将输入更改为数字,因为它们被视为字符串。因此,您的
for
循环应该如下所示:

for (i=0; i<3; i++)
{
    entryArray[i] = parseFloat(entryArray[i]);
}
for(i=0;i在
changer()
中,您在每次输入后都要销毁并重新创建数组。我建议将数组声明移动到全局范围中,这样您就可以在
changer()
函数中将元素推送到它:

注:

  • 将数组声明为[]比新数组更可取
  • 不确定您是否知道,但是
    newresults()
    函数和
    gradeinfo
    对象没有做任何事情

此外,计数器没有任何作用,x布尔值也没有必要,因为它基本上只是检查提示输入。下面是我的方法和步骤


你能格式化你的代码吗?你是否意识到当你在下一步将其他东西存储到变量中时,执行
var entryvalid=new Array;
什么都不做。JavaScript没有类型化的变量。
var finalgradeinfo = [];

var changer = function (y) {
    finalgradeinfo.push(y);
}

do {
    var entry = prompt("Enter a course code and grade seperated by a comma");

    if (entry != null && entry != "") {
        var counter;
        var entryvalid = entry.split(",");
        changer(entryvalid);
        x = true;
    } else {
        x = false;
    }
} while (x != false);

console.log(finalgradeinfo);
var finalgradeinfo = { // declare finalgradeinfo in the global scope
    coursecode: [],
    grade: [] }
  , entry = '';

do {
    entry = prompt('Enter a course code and grade seperated by a comma') || ''; // will set entry to '' if user hits cancel
    if (entry == '') continue; // break out of iteration if string is empty
    var entryvalid = entry.split(",");
    finalgradeinfo.coursecode.push(entryvalid[0]);
    finalgradeinfo.grade.push(entryvalid[1]);
} while(entry !== '');

console.log(finalgradeinfo);