具有变量名称的 Javascript 对象属性

标签 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 - 如何减少对每个空选择使用错误消息

javascript - Electron - 为什么我可以在客户端使用 require()

javascript - JS : Capitalize first letter of every word entered into input

javascript - 如何使用 Selenium 测试图像裁剪(选择)?

javascript - 带变量的数组中的多个提示,可能吗?

javascript - 如果登录应用程序如何重定向

javascript - 在 Chrome 控制台中展开 JavaScript 对象时显示不同的属性值

javascript - 书签发布 html 内容(而不是获取/请求)

javascript - 在 Node.js 中异步读写文件