имя переменной добавляется к json вместо значения переменной - PullRequest
1 голос
/ 07 апреля 2020

Я получаю json от API, который я написал. json содержит некоторые значения, и одно из них должно быть добавлено к другому json. json для добавления данных следующее:

originalOrder = {
              "nome": 1,
              "cognome": 2,
              "mail": 3,
              "telefono": 4,
              "cf": 5,
              "data": 6,
              "ora": 7,
              "cellit": 8,
              "cellex": 9
          };

Данные, которые мне нужно добавить:

var toAppend = data.name;

, и если я отображаю значение toAppend, оно показывает правильное значение ценность. Скажем, например, что toAppend повторяет dummyData. Я хочу, чтобы json был в конце:

originalOrder = {
              "nome": 1,
              "cognome": 2,
              "mail": 3,
              "telefono": 4,
              "cf": 5,
              "data": 6,
              "ora": 7,
              "cellit": 8,
              "cellex": 9,
              "dummyData": 10
          };

Поэтому я также вычисляю длину массива:

var lunghezza = parseInt(originalOrder.length);
lunghezza = lunghezza +2;

, а затем добавляю новый элемент в массив :

originalOrder.toAppend=lunghezza;

, но массив заканчивается следующим образом:

originalOrder = {
                  "nome": 1,
                  "cognome": 2,
                  "mail": 3,
                  "telefono": 4,
                  "cf": 5,
                  "data": 6,
                  "ora": 7,
                  "cellit": 8,
                  "cellex": 9,
                  "toAppend": NaN
              };

, поэтому у меня есть две проблемы:

  • я получаю имя переменной вместо значение переменной
  • Я получаю не число вместо 10 (я пытался также принудительно вызвать его с помощью parseInt, но безуспешно)

Что я здесь не так делаю?

Редактировать: если я сделаю

var toAppend = data.nome; console.log ('toAppend:' + toAppend);

в console.log:

toAppend: dummyData; это ожидаемое поведение

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Чтобы использовать значение переменной в качестве ключа к объекту, вы можете использовать квадратную скобку в javascript.

const obj = {
   "hello": "world"
};
const key = "value";
obj[key] = "any value";
console.log(obj)

напечатает

{
   "hello": "world",
   "value": "any value"
}

Кроме того, вы не можете использовать length свойства объекта. Тем не менее, вы можете получить список ключей объекта, а затем получить длину.

console.log(Object.keys(obj).length);

напечатает

2

Надеюсь, это поможет

0 голосов
/ 07 апреля 2020

originalOrder - это объект, и по этой причине для получения количества ключей (т. Е. «Длины объекта») вам необходимо:

Object.keys(originalOrder).length

Чтобы добавить ключ со значением переменной toAppend необходимо написать:

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