Javascript, имя функции с интерполяцией строк [дубликаты]

1

Я новичок в javascript.

У меня есть строка кода:

data.content_teaser.image_square_attachment_url

квадрат может меняться: у меня есть переменная, называемая contentType, которая может быть 'square', 'vertical' или 'horizontal'.

В ruby я могу использовать send с интерполяцией строк, как я могу получить то же самое в js?

Что-то вроде "data.content_teaser.image_" + contentType + "_attachment_url"

Теги:

2 ответа

0
Лучший ответ

Javascript имеет 2 способа доступа к свойствам/методам объекта - точечные обозначения и квадратные обозначения. Последний использует строку, которую вы могли бы создать обычным способом для любой строки. Таким образом, эти 2 эквивалентны:

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"];
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]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню