Как из строки получить ссылку на значение в массиве?

Доброго времени суток. Подскажите, пожалуйста, как сделать такое, самому не получается.
Есть некий массив:
const circle = [
    {
      "однотонный односторонний": 82,
      "однотонный двусторонний": 95,
      "дерево камень односторонний": 124,
      "дерево камень двусторонний": 190
    },
    {
      "однотонный односторонний": 85,
      "однотонный двусторонний": 98,
      "дерево камень односторонний": 121,
      "дерево камень двусторонний": 158
    }
  ];


Есть строка в которой формируется ссылка на опр значение из массива. То есть пользователь выбрал параметры и из них формируется характеристики товара и цена:
let newPrice = `${this.currentForm}[0][${this.currentMaterial} ${this.currentCut}]`

В конечном виде строка выглядит как: circle[0]["дерево камень односторонний"] как и должна выглядеть ссылка на значению.
Я хочу записать значение цены из массива и если писать вручную то получает нужное значение
this.price = circle[0]["дерево камень односторонний"]

Но я хочу что бы скрипт сам формировал ссылку на значение из массива из строки newPrice.
Как мне перевести строку в ссылку на значение в массиве?
(eval пробовал, но пишет про незакрытую ] на 1 строке кода где подавно нет массивов)
P.S. массивов как circle может быть много и эта часть тоже меняется. Индекс тоже меняется, но там проще, либо 0 либо 1.
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Ем ...
newPrice = `${this.currentMaterial} ${this.currentCut}`
circle[0][newPrice]
не?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Я так понимаю this.currentForm = 'circle' если у тебя this.currentForm может принимать разные значения
ты под каждое делаешь новую переменную?
const circle = [
    {... },
    {... }
  ];

const else = [
    {... },
    {... }
  ];

Ну а вторую часть достать проще простого
[0]["дерево камень односторонний"]
circle[0][`${this.currentMaterial} ${this.currentCut}`]
Ответ написан
Комментировать
john36allTa
@john36allTa
alien glow of a dirty mind
.....ц
Пихните circle и ему подобные массивы в объект, оттуда сможете доставать его вашим методом
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы