[英]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.