2016-03-22 42 views
1

我想調用一個對象。通過串聯引用JS對象

的方式我目前做:

var key = object_0 

我想做到這一點

var key = "object_" + questionId; 

的方式,但在調用串連object_0我不獲取對象信息 時我做一個:

console.log(key) 

任何洞察力將是真棒。

+0

這將是一個容易得多,如果你可以得到屬性,而不是整個對象的,那麼它只是'OBJ [「object_」 + questionId]' – adeneo

+0

如果你認爲你需要使用動態變量,你可能做錯了什麼。你應該把所有的對象放到一個數組中,然後使用'questions [questionId]'。 – Barmar

回答

1

如果您使用ES5,則可以創建新的空對象。以下是具體步驟:

1,創建空的對象

var o = {}; 

2.使用括號產生一個對象的新的關鍵 - ("object_" + questionId) - 這將迫使解析器首先在括號計算表達式

3.assign值到新添加的鍵

o[("object_" + questionId)] = XXX; 

然後console.log(o)將輸出{object_0: XXX}

+0

或者只是將questionId作爲關鍵字存儲在沒有多餘前綴的對象中:) – Andy

0

可以使用窗口對象(訪問全局變量只):

var object_0 = { p: 42 }, 
 
    questionId = 0, 
 
    key = "object_" + questionId; 
 
document.write(window[key].p);

但我建議改變數據結構以更簡潔的風格:

var questions = { 200: { p: 42 }}, 
 
    questionId = 200; 
 
document.write(questions[questionId].p);