在函数外部填充数组不起作用

时间:2011-10-05 22:29:21

标签: javascript arrays

以下是不起作用的示例:

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

在任何函数外部声明和填充数组都不起作用,但

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

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

2 个答案:

答案 0 :(得分:4)

你在这里做的不是初始化,而是成员查找。表达式被解析为array_one[<member name>]。在这种情况下,通过评估'a', 'b', 'c'来实现member_name。这使用逗号运算符,因此按顺序计算3个表达式,表达式的结果是最终表达式:'c'。这意味着您的代码正在有效地执行以下操作

array_one['c'];

这听起来像你想要的是

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

答案 1 :(得分:2)

array_one['a','b','b']不是填充数组的语法 - 我不确定它实际上是什么。

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

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