Вы пытаетесь добавить к имени переменной значение x
. Вы близки, но вам нужно использовать скобочные обозначения, а не точечные.
Например, если x
в настоящее время равно 5, вы можете получить значение strIngredient5
с помощью drinkResponse.drinks[0]['strIngredient'+x]
или drinkResponse.drinks[0][`strIngredient${x}`]
.
Как указывал Лейн, вы также можете использовать Object.keys
для перечисления всех ключей объекта, а затем фильтровать только те ключи, которые начинаются с strIngredient
:
// get all keys on the drink
const allKeys = Object.keys(drinkResponse.drinks[0]);
// now filter for only keys starting with `strIngredient`
const ingredients = allKeys.filter(key => key.startsWith('strIngredient'));
for (const i=0; i<ingredients.length; i++) {
$("#drinkOutput").append($("<p class='drinkData'>Drink Ingredient"
+ i + " : " + (drinkResponse.drinks[0][ingredients[i]]) + "</p>"))
}
Обратите внимание, что это может не сохранить порядок, но вы можете сохранить порядок, объединив первые два примера:
for (const i=0; i<ingredients.length; i++) {
$("#drinkOutput").append($("<p class='drinkData'>Drink Ingredient"
+ i + " : " + (drinkResponse.drinks[0][`strIngredient${i}`]) + "</p>"))
}