簡體   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