我是一个javascript新手。
我有一行代码:
data.content_teaser.image_square_attachment_url
square可以更改:我有一个名为contentType的变量,可以是'square'
,或'vertical'
或'horizontal'
。
在ruby中我可以使用带字符串插值的send,如何在js中获得相同的内容?
像"data.content_teaser.image_" + contentType + "_attachment_url"
答案 0 :(得分:0)
您可以使用Javascript的字符串插值,因为ES2015在这里查看https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals:
`string text ${expression} string text`
所以,你可以使用这样的东西:
let s = `image_${contentType}_attachment_url`
之后:
data.content_teaser[s]
答案 1 :(得分:0)
Javascript有两种访问对象属性/方法的方法 - 点符号和方括号符号。后者使用一个字符串,你可以用任何字符串的正常方式构建。所以这两个是等价的:
data.content_teaser.image_square_attachment_url;
data.content_teaser["image_square_attachment_url"];
所以,回答你的问题:
var contentType = "square";
var result = data.content_teaser["image_" + contentType + "_attachment_url"];