2012-06-21 71 views
1

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

这里是代码:

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]

你对数组中的不确定值的任何想法?

+2

它为我输出'[30,30,30,30,30,30,30,30,30,30,30,30]'。 – sachleen

+0

我把它放到Firefox Web控制台上,它会打印'[30,30,30,30,30,30,30,30,30,30,30]和'[“#000”,“#000 “#000”#000##000##000#000 000#000#000 000#000 000#000##000 “]'。 – kennytm

+3

另外,请更改新的Array();到[]这被认为是更好的做法 –

回答

2

我想你以后会改变数组。控制台将反映这些变化,例如然后显示对象而不是数字和字符串。此外,从阵列中删除属性时(通过delete,请参阅Deleting array elements in JavaScript - delete vs splice),它们仍将显示为已初始化但为空(请参阅What is "undefined x 1" in JavaScript?)。

+0

是的,在这些行后面有一个函数调用,其中传递了这些数组。该函数更改数组。谢谢你的答案。你有关于这个概念的更多信息可能是文档,链接等? –

+1

关于什么文件?对于[控制台](http://getfirebug.com/wiki/index.php/Console_API),您可以找到http://getfirebug.com/logging或http://patik.com/blog/complete-cross-browser -console-log /有用。 – Bergi

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"] 

也许你已经加入了一些.prototype东西阵列别的地方的代码?

+0

我正在使用raphael.js和它的插件piechart.js –

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"] 

你看到的不知道。

+0

我的控制台输出它作为一个对象数组,你有任何想法吗? –