【问题标题】:How to display the contents of an array after comma splitting it in Java Script如何在 Javascript 中用逗号分隔数组后显示数组的内容
【发布时间】:2013-07-12 05:36:34
【问题描述】:

我对 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);

我的函数需要包含闭包,所以如果看起来完全错误,我提前道歉。

【问题讨论】:

  • 你能格式化你的代码吗?
  • 您是否意识到在下一步中将其他内容存储到变量中时,var entryvalid = new Array; 没有任何作用。 JavaScript 没有类型变量。

标签: javascript arrays output comma


【解决方案1】:

Help from this post

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

for (i=0; i<3; i++)
{
    entryArray[i] = parseFloat(entryArray[i]);
}

用数字覆盖字符串。

【讨论】:

    【解决方案2】:

    changer() 中,您将在每次输入后销毁并重新创建数组。我建议将数组声明移动到全局范围内,以便您可以在 changer() 函数中将元素推送到它:

    Fiddle

    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);
    

    注意事项:

    • 将数组声明为 [] 优于 new Array
    • 不确定您是否知道,但 newresults() 函数和 gradeinfo 对象没有做任何事情

    【讨论】:

      【解决方案3】:

      此外,计数器不做任何事情,并且 x 布尔值是不必要的,因为它基本上只是检查提示输入。这是我的方法和fiddle

      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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-06-14
        • 2014-03-09
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        相关资源
        最近更新 更多