使用变量作为键名,向JavaScript对象添加属性?
P粉071559609
P粉071559609 2023-08-24 18:04:17
0
2
512
<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' }

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板