使用變數作為鍵名,為JavaScript物件新增屬性?
P粉071559609
P粉071559609 2023-08-24 18:04:17
0
2
535
<p>我正在使用jQuery從DOM中提取項目,並希望使用DOM元素的<code>id</code>設定物件的屬性。 </p> <h3>範例</h3> <pre class="brush:js;toolbar:false;">const obj = {} jQuery(itemsFromDom).each(function() { const element = jQuery(this) const name = element.attr('id') const value = element.attr('value') // 這裡是問題所在 obj.name = value }) </pre> <p>如果<code>itemsFromDom</code>中包含一個<code>id</code>為"myId"的元素,我希望<code>obj</code>有一個名為」myId "的屬性。上面的程式碼給我<code>name</code>。 </p> <p>如何使用JavaScript使用變數命名物件的屬性? </p>
P粉071559609
P粉071559609

全部回覆(2)
P粉116654495

使用ECMAScript 2015,您可以直接在物件宣告中使用方括號表示法:

var obj = {
  [key]: value
}

其中key可以是任何類型的表達式(例如變數),傳回一個值:

var obj = {
  ['hello']: 'World',
  [x + 2]: 42,
  [someObject.getId()]: someVar
}
P粉696605833

你可以使用等效的語法:

obj[name] = value

範例

let obj = {};
obj["the_key"] = "the_value";

或使用ES6的特性:

let key = "the_key";
let obj = {
  [key]: "the_value",
};

在這兩個範例中,console.log(obj)將傳回:{ the_key: 'the_value' }

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板