<分区>
我从没想过我会遇到这样的问题,但是嘿,你知道什么..
var prop = 'horses'
console.log({
prop: 1
});
我怎样才能生成一个具有属性 horses
而不是 prop
的对象,并且可能在一行中完成?因为我可以想到一个解决方案,但我真正想要的是单线。
标签 javascript
<分区>
我从没想过我会遇到这样的问题,但是嘿,你知道什么..
var prop = 'horses'
console.log({
prop: 1
});
我怎样才能生成一个具有属性 horses
而不是 prop
的对象,并且可能在一行中完成?因为我可以想到一个解决方案,但我真正想要的是单线。
最佳答案
您可以使用方括号表示法:
var obj = {};
obj[prop] = 1;
console.log(obj);
在 JavaScript 中,您可以通过点符号和文字名称 (foo.bar
) 或带有 string 名称的括号符号 ( >foo["bar"]
).在后一种情况下,字符串可以是任何表达式的结果,包括(在您的情况下)变量引用。
...but what I'm really looking for is a one-liner.
虽然没有办法将其作为对象初始值设定项的一部分来执行,但您必须单独执行。如果你想要一个单行,你需要做一个函数调用,例如:
console.log(makeObj(prop, 1));
makeObj
在哪里
function makeObj(propName, propValue) {
var obj = {};
obj[propName] = propValue;
return obj;
}
关于具有变量名称的 Javascript 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20734590/
相关文章:
javascript - SailsJS/NodeJS 管理异步性质
javascript - Electron - 为什么我可以在客户端使用 require()
javascript - JS : Capitalize first letter of every word entered into input
javascript - 如何使用 Selenium 测试图像裁剪(选择)?
javascript - 带变量的数组中的多个提示,可能吗?
javascript - 在 Chrome 控制台中展开 JavaScript 对象时显示不同的属性值