【问题标题】:Returning an array with decimal values in a javascript function在javascript函数中返回具有十进制值的数组
【发布时间】:2011-09-20 18:19:59
【问题描述】:

我无法将包含十进制值的数组返回给变量:

function foo() {
    var coords = new Array(39.3,18.2);
    console.log(coords[1]); //successfully logs 18.2
    return coords;
}

然后……

var result = foo();
alert(result[0]);

最后一个抛出这个错误: 未捕获的类型错误:无法读取未定义的属性“0”

【问题讨论】:

  • 不应该是alert(result[0])吗?其他一切看起来都很好 - 我会说问题出在您的代码中的其他地方。
  • 这不是问题。我会纠正这个问题。

标签: javascript arrays function


【解决方案1】:

您需要在警报函数的参数周围加上括号。

alert(result[0]);

【讨论】:

    【解决方案2】:

    正如其他人提到的,警报是一个函数,需要括号

    alert(result[0])
    

    也就是说,还有一些需要注意的地方:

    1) 使用数组字面量语法代替new Array

    var coords = [1.23, 3.45];
    

    它更快且新的 Array 有一些边缘情况。

    2) 大多数浏览器都有开发工具(通常可以按 F12 访问)。这使您可以使用更方便的 console.log 而不是 alert。

    【讨论】:

    • 如果我需要在 foreach 循环中填充该数组怎么办?
    • @andufo:你如何创建数组有什么关系?创建数组后,它们的工作方式相同。
    【解决方案3】:

    问题是警报语句周围缺少括号

    试试

    alert (result[0]);
    

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多