为了账号安全,请及时绑定邮箱和手机立即绑定

使用变量作为名称将属性添加到JavaScript对象?

使用变量作为名称将属性添加到JavaScript对象?

Cats萌萌 2019-05-27 13:03:29
使用变量作为名称将属性添加到JavaScript对象?我使用jQuery从DOM中提取项目,并希望使用idDOM元素在对象上设置属性。例const obj = {}jQuery(itemsFromDom).each(function() {   const element = jQuery(this)   const name = element.attr('id')   const value = element.attr('value')   // Here is the problem   obj.name = value})如果itemsFromDom包含一个带有id“myId” 的元素,我想要obj一个名为“myId”的属性。以上给了我name。如何使用JavaScript使用变量命名对象的属性?
查看完整描述

4 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

您可以使用此等效语法:

obj[name] = value


查看完整回答
反对 回复 2019-05-27
?
冉冉说

TA贡献1877条经验 获得超1个赞

使用ECMAScript 2015,您可以使用括号表示法直接在对象声明中执行此操作:

var obj = {
  [key]: value}

哪里key可以是任何类型的表达式(例如变量)返回值:

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


查看完整回答
反对 回复 2019-05-27
?
三国纷争

TA贡献1804条经验 获得超7个赞

您甚至可以像这样制作对象列表

var feeTypeList = [];$('#feeTypeTable > tbody > tr').each(function (i, el) {
    var feeType = {};

    var $ID = $(this).find("input[id^=txtFeeType]").attr('id');

    feeType["feeTypeID"] = $('#ddlTerm').val();
    feeType["feeTypeName"] = $('#ddlProgram').val();
    feeType["feeTypeDescription"] = $('#ddlBatch').val();

    feeTypeList.push(feeType);});


查看完整回答
反对 回复 2019-05-27
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

使用lodash,您可以创建像这样的新对象_.set

obj = _.set({}, key, val);

或者您可以像这样设置现有对象:

var existingObj = { a: 1 };_.set(existingObj, 'a', 5); // existingObj will be: { a: 5 }

如果要在路径中使用点(“。”),则应该注意,因为lodash可以设置层次结构,例如:

_.set({}, "a.b.c", "d"); // { "a": { "b": { "c": "d" } } }


查看完整回答
反对 回复 2019-05-27
  • 4 回答
  • 0 关注
  • 846 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信