簡體   English   中英

通過串聯引用JS對象

[英]Reference JS object through concatenation

我正在嘗試調用一個對象。

我目前的做法:

var key = object_0

我想做的方式

var key = "object_" + questionId;

但是當調用串聯的object_0時,執行以下操作時我沒有得到對象信息:

console.log(key)

任何見解都會很棒。

如果使用ES5,則可以通過創建新的空對象來實現。 步驟如下:

1.創建空對象

var o = {};

2.使用方括號在對象上生成新鍵- ("object_" + questionId) -這將強制解析器首先("object_" + questionId)括號中的表達式求值

3.將值分配給新添加的密鑰

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

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

簡短答案:全局范圍+方括號。

window['object_'+questionId] = 'foo';
console.log(window['object_'+questionId]); // 'foo'

長答案: 在JavaScript中使用動態變量名稱

您可以使用window對象(僅訪問全局變量):

 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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM