![](/img/trans.png)
[英]How do I interpolate variable values in the javascript or typescript string?
[英]How do I interpolate a variable as a key in a JavaScript object?
如何使用变量a
的值作为查找属性的键? 我希望能够说: b["whatever"]
并获得此回报20:
var a = "whatever";
var b = {a : 20}; // Want this to assign b.whatever
alert(b["whatever"]); // so that this shows 20, not `undefined`
我问在b
的创建过程中是否有可能让它包含"whatever":20
而不是a:20
其中“what”本身就是一个变量。 也许可以使用eval
?
var a = "whatever";
var b = {};
b[a] = 20;
alert(b["whatever"]); // shows 20
这适用于Firefox 39和Chrome 44.不了解其他浏览器。 它也不适用于nodejs v0.12.7。
var a = "whatever";
var b = { [a]: 20 };
console.log(b["whatever"]); // shows 20
也就是说,要插入变量,请将其括在括号中。
我不确定这是否是任何标准的一部分。 最初,我在这里看到了这样的语法: https : //hacks.mozilla.org/2015/07/es6-in-depth-classes/作者定义:
[functionThatReturnsPropertyName()] (args) { ... }
我也不确定你是否应该使用这种语法。 它并不广为人知。 您团队中的其他成员可能无法理解代码。
var a = "whatever";
var b = {a : 20};
b[a] = 37;
alert(b["whatever"]); // 37
'a'
是一个值为'a'
的字符串。 a
是值为'whatever'
的变量。
好问题。 我有时间试图用下划线来解决这个问题,但答案可能不是更简单:
var a = "whatever";
var b = {a : 20};
var array = [a, b]
var answer = _.object([[array]])// {whatever: {a:20}}//NOTICE THE DOUBLE SET OF BRACKETS AROUND [[array]]
我希望这有帮助!
试试这个:
var a = "whatever";
var c = "something";
var b = {whatever : 20, something: 37};
alert(b[a]); // Shows 20
alert(b[c]); // Shows 37
这是小提琴 。
或者,如果我从下面的评论中正确理解,请尝试以下方法:
var a = "whatever";
var b = {a : 20};
alert(b.a); // Shows 20
为了显示所有选项,我想提一下CoffeeScript的做法,即:
var a = "whatever";
var b = (
obj = {},
obj["" + a] = 20,
obj
);
alert(b.whatever); // 20
虽然我更喜欢:
var a = "whatever";
var b = {};
b[a] = 20;
alert(b.whatever); // 20
如果它是什么
var a = "whatever.other";
var b = {a:20};
expected output b["whatever"]["other"] should return 20
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.