как получить доступ к значениям объекта с помощью динамических ключей?

#javascript #arrays #object

Вопрос:

У меня есть этот код

     bodyLength.map((el, i) => {
      console.log(`${values.bodyTitleEn2   i.toString()}`);

      body.push({
        title: [
          {
            key: 'en',
            value: values.bodyTitleEn   i,
          },
          {
            key: 'ku',
            value: values.bodyTitleKu   i,
          },
          {
            key: 'ar',
            value: values.bodyTitleAr   i,
          },
        ] ...
 

values.bodyTitleEn , Ku , и Ar иметь ряд в конце их, а значит values.bodyTitleEn0 , values.bodyTitleEn1 , values.bodyTitleEn2 и у меня есть этот массив bodyLength , который равен длине сколько bodyTitle[En] там, так что я пытаюсь достичь values.bodyTitleEn i , чтобы добавить число в конце динамически, но он говорит undefined values.bodyTitleEn , потому что bodyTitleEn не существует объекта без номера в конце, как я могу добиться этого, спасибо.

Ответ №1:

Вы можете добавить номер следующим образом:

 values[`bodyTitleEn${i}`]
 

приведенный выше синтаксис попытается получить значение ключа bodyTitleEn0 , bodyTitleEn1

когда вы используете values.bodyTitleEn i , вы пытаетесь добавить число к возвращаемому значению values.bodyTitleEn , но, как вы заметили, у объекта values нет ключа bodyTitleEn , и даже если у него есть ключ, это не то, что вы хотите сделать.

Комментарии:

1. да, я вижу это, спасибо за ответ, вы сэкономили мне так много времени 🙂 ура

2. @LhonRafaatMohammed См. Вычисленные Имена Свойств .