2016-04-29 31 views
2

說我有兩個數組和一個整數。如何根據數字寫入多個數組?

var int = 1; //or 0 depending on other circumstances 
var ar0 = [0] 
var ar1= [1] 

是否有一種方法可以使用整數來確定要寫入哪個數組?如果int = 1那麼我可以有東西沿線

'ar'+ int 

那會選擇正確的數組?或者我需要一堆if語句? 我希望能夠識別和編輯我需要編輯的數組,這個數字是給我的。

+2

的可能的複製[字符串轉換爲變量名稱在JavaScript中](http://stackoverflow.com/questions/5613834/convert-string-to-variable-name-in-javascript) – Leeish

回答

4

你要做的是建立一個環境。但是,您不能通過名稱訪問JavaScript中的變量環境中的變量,例如'ar' + int。如果它在全球範圍內,通過使用window['ar'+int]是可能的,但這是不好的做法,並且假定該變量是全局的。

你應該做的是將它們包裝在一個對象中,然後使用對象中的引用來定位該數組。

var int = 1; 
var environmentObject = {}; 
environmentObject['ar0'] = [0];//string notation assignment example 
environmentObject.ar1 = [1];//dot notation assignment example 

,現在你可以很容易地通過名稱

訪問陣列
var myarr = environmentObject[`ar`+int]; 
0

你可以使用一個eval

var int = 1; 

var ar0 = [0]; 
var ar1 = [1]; 

eval('ar' + int).push(2); 

console.log(ar1); // 1, 2 

但它是一個不好的實踐。對於你的情況,如果你只有兩個整數(0,1)最好使用if聲明:

if(int) { // 0 is falsy, 1 is truth 
    ar1.push(...); 
} else { 
    ar0.push(...); 
} 

或者提到Oriol,使用ternary操作:

(int ? ar1 : ar0).push(...); 
+0

或'(int?ar1:ar2).push(...) – Oriol

相關問題