js对象的健,如何根据变量值来指定

代码如下:

var setInfo = {};
if(xxx){
    var a = 'qa';
}else{
    var a = 'local';
}

setInfo.a = 'xxxx';

我期望得到的结果 setInfo.local = 'xxxxx' 或者 setInfo.qa= 'xxxxx' .

但是实际结果却为 setInfo.a = 'xxxx' .

如何做才能使这个 a 按变量解析。

分隔 重新整理下思路


先定义一个变量:

var environment = ['qa','local','prod'];

期望得到这样格式的数据:

var data = {
    local:{},
    qa:{},
    prod:{}
}

在一个循环中写如下赋值代码:

//setInfo 为在循环中获得数据
data = {environment[1]:setInfo}

或者

data.environment[1] = setInfo

这两段代码都会报错。。。。。

阅读 1.9k
2 个回答

segInfo[a]


第一种写法:

data = {
  [environment[1]]: 'setInfo'
}

第二种写法:

data[environment[1]] = 'setInfo'

你可以先添加属性local,然后将a的属性值赋值给local,然后用delete删除属性a

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题