繁体   English   中英

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

[英]Populating an array outside a function doesn't work

以下是无效示例:

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

在任何函数外部声明和填充数组均无效,但是

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

这样做,因为它在函数内部。 为什么?

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

array_one['c'];

听起来就像您想要的是

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

array_one['a','b','b']不是填充数组的语法-我不太确定其实际作用。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM