var var1;
var var2;
var var3;
var list_var = [var1, var2, var3];
var values = ["hello", "cruel", "world"];
我想有...如何在列表中設置基元的值?
var1 = "hello"
var2 = "cruel"
var3 = "world"
我應該怎麼辦?在我的情況下,我需要在列表中有一個動態的基本變量列表,需要相應地設置。我想用for
循環來做到這一點。
var var1;
var var2;
var var3;
var list_var = [var1, var2, var3];
var values = ["hello", "cruel", "world"];
我想有...如何在列表中設置基元的值?
var1 = "hello"
var2 = "cruel"
var3 = "world"
我應該怎麼辦?在我的情況下,我需要在列表中有一個動態的基本變量列表,需要相應地設置。我想用for
循環來做到這一點。
你可以用解構。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
在你的榜樣......
var values = ["hello", "cruel", "world"];
var [var1, var2, var3] = values;
console.log(var1, var2, var3)
https://jsfiddle.net/fnsjrjcv/
更新:您可以使用此你會與一個正常的變量相同的方式來設置變量外範圍。受外範圍內定義它們,這裏有一個例子:
var var1, var2, var3;
function changeMyVars() {
var values = ["hello", "cruel", "world"];
[var1, var2, var3] = values;
}
changeMyVars();
嘿交配,我還沒有檢查你的解決方案。給我時間,今晚晚些時候我會檢查這個。 – notalentgeek
這個解決方案的工作,有點。但它只會改變當前範圍內的變量。在我的情況下,我把你的代碼放在一個函數中,這些原語在函數之外設置和聲明。變量更改僅在該函數內。 – notalentgeek
我已經更新我的回答給了怎麼辦,你所追求的(我認爲)的例子。希望有幫助。 – TSR
一個解決方案可以是:
for (i = 1; i < 4; i++) {
eval("var" + i + "=" + values[i]);
}
總之,你應該知道,它不能使用這樣的可行辦法,根據情況而定。
Whoaaa'的eval()',我想我沒有其他選擇,是不是? – notalentgeek
您可以使用window
對象在全局範圍內設置的變量值(雖然不推薦/建議具有全局範圍的變量)。但list_var
應具有字符串格式的變量列表。
var list_var = ["var1", "var2", "var3"];
var values = ["hello", "cruel", "world"];
for (i = 0; i < list_var.length; i++) {
window[list_var[i]] = values[i];
}
console.log(var1);
console.log(var2);
爲什麼你要這麼做?數組是正確的數據結構,用於存儲動態值列表... –
不知道我是否理解你想要做什麼,但是,難道你不能只將字符串推入循環中的數組中嗎? –
在我來說,我需要在列表中有需要進行相應的設置原始變量的動態列表。我想用for循環做這個。另外,我有一個函數可以放置一個基元列表。在該函數中,將爲數組中的每個基元設置新的值。 – notalentgeek