这样的问题:

function(value, key) {
    ret.push({key: value});
}

key会被解析成字符串"key",期望是变量key 例当key="abc",value="123"
上述实际变成{"key":"123"} 应该是{"abc":"123"}
最直接的答案是 var o = {}; o[key] = value; ret.push(o);
但是有没有更简洁的方法?

以下是讨论结果

@240 var a={},b=a[key]=value,c=ret.push(a);
@hotor var c;ret.push((c={},c[a]=b,c));
@Gaubee ret.push(eval("({"+key+":\""+value+"\"})"));
@hotor function(a,b,c){ret.push((c={},c[a]=b,c));}
@240 ret[ret.push({})-1][key]=value;
@Gaubee (ret[ret.length] = {})[key] = value;

自己的例子

如何将变量做为一个对象的key,push进一个数组?

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
  • 2021-10-24
  • 2021-12-18
  • 2021-06-02
猜你喜欢
  • 2021-04-04
  • 2022-03-05
  • 2021-09-20
  • 2022-02-02
  • 2021-12-10
相关资源
相似解决方案