1

我有一些代码在没有意义的数组中产生未定义的值。

这是代码:

gcc_py = 8;
gcc_pyd = 12;
var aci = 360/gcc_pyd;
var parcalar = new Array();
var renkler = new Array();

for(var i = 0;i<gcc_pyd;i++){   
    parcalar.push(aci);
    renkler.push('#000');
}

console.log(parcalar);
console.log(renkler);

console.log(parcalar) 输出:

[ 对象 , 对象 , 对象 , 对象 , 对象 , 对象 , 对象 , 对象 , 对象 , 对象 , 未定义 × 2]

您对数组中未定义的值有任何想法吗?

4

3 回答 3

2

我猜你之后会改变数组。控制台将反映这些变化,例如然后显示对象而不是数字和字符串。此外,当从数组中删除属性时(通过delete,请参阅在 JavaScript 中删除数组元素 - 删除与拼接),它们仍将显示为已初始化但为空(请参阅JavaScript 中的“未定义 x 1”是什么?)。

于 2012-06-21T18:23:27.380 回答
0

我的输出显示

[30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]

["#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000"]

也许您在代码中的其他地方向 Array 添加了一些 .prototype 内容?

于 2012-06-21T18:13:19.310 回答
0

当我运行相同的配置时:

<script>
  var gcc_py = 8;
  var gcc_pyd = 12;
  var aci = 360 / gcc_pyd;
  var parcalar = new Array();
  var renkler = new Array();

  for(var i = 0; i < gcc_pyd; i++){
      parcalar.push(aci);
      renkler.push('#000');
  }

  console.log(parcalar);
  console.log(renkler);
</script>

我得到:

[30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]
["#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000"]

不知道你看到了什么。

于 2012-06-21T18:15:33.713 回答