Используйте переменную для хранения пути "change.doc" - PullRequest
1 голос
/ 24 октября 2019

Я пытаюсь использовать переменную в качестве пути к документу пожарного магазина:

        console.log(change.doc.data().m_1.name);   <----- This work well !

        a = 1;
        let me = change.doc.data().m_+a;    <----- But not that....
        console.log(me.name);

Как я могу это сделать? Заранее спасибо ! :)

Ответы [ 3 ]

3 голосов
/ 24 октября 2019

Я думаю, что вы хотите построить имя ключа как его собственную переменную и использовать его для индексации объекта.

const a = 1;
const key = "m_" + a;
const me = change.doc.data()[key];
3 голосов
/ 24 октября 2019

Вы должны использовать скобки при использовании динамического свойства.

let me = change.doc.data()['m_' + a];
1 голос
/ 24 октября 2019

Когда вы используете переменную a в своем примере, вы просите JS добавить число 1 к выходу ваших функций. Это не правильный путь. Вы хотите использовать клавишу для доступа к данным из ваших data() возвращаемых функций, как показано ниже.

change = {
doc: {
    data: function() {
      return {
        m_1: {
          name: "Mario",
          occupation: "plumber",
          siblings: 1,
          age: 24
        },
        m_2: {
          name: "Mike",
          occupation: "developer",
          siblings: 3,
          age: "28"
        }
      }
    }
  }
}

console.log("Old way:" + change.doc.data().m_1.name);

const a = 1;
let me = change.doc.data()['m_' + a];
console.log("Desired way: " + me.name)

Я предположил простую структуру данных, полученную из вашего вопроса, но я не уверен, что это то, чтоты получаешь. Но это может выглядеть немного так.

РЕДАКТИРОВАТЬ awww .... Страница не обновилась, и я не увидел два первых ответа :( ну ... по крайней меремы согласны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...