2011-10-05 64 views
1

这里是什么行不通的例子:填充阵列功能外不起作用

var array_one = []; 
array_one=['a','b','c']; 

声明和填充阵列以外的任何功能不起作用,但

var array_one = []; 
function do_something(){ 
    array_one=['a','b','c']; 
} 

确实,因为它在一个函数内。为什么?

+4

你会期望做什么?如果你打算'array_one = ['a','b','c'];'你只是缺少一个'='。或者你想单独提及'['a']','['b']'和'['c']',可能将它们改为'null'? – VoteyDisciple

+0

再次,我的错误..在一个真实的代码...有一个'=',我会纠正这个问题,但这将无效的答案! – menardmam

回答

2

array_one['a','b','b']没有语法来填充数组 - 我真的不知道它实际上做。

如果你这样做array_one = ['a','b','c']然后你用一个新的数组替换变量。 (与数组之间的区别在于对前一个数组的其他引用仍旧具有旧值)。

要向数组中添加值,请使用array_one.push('a')

4

你在这里做的不是初始化,而是成员查找。该表达式被解析为array_one[<member name>]。在这种情况下,member_name是通过评估'a', 'b', 'c'来实现的。这将使用逗号运算符,以便按顺序评估3个表达式,并且表达式的结果是最终表达式:'c'。这意味着你的代码是切实做好以下

array_one['c']; 

这听起来像你想要的东西反而

array_one = ['a', 'b', 'c'];