Как создать атрибуты динамического объекта из ответа Ajax в Javascript - PullRequest
0 голосов
/ 23 октября 2019

Я использую Ajax для получения списка предметов инвентаря, я хотел бы иметь объект с именем инвентарь, а затем создать атрибуты, названные как элементы ответа, так что это означает, что если я вставлю больше предметов вмоя база данных мне не нужно жестко кодировать элементы объекта в моем файле JavaScript. Сейчас я могу создать объект, но не могу получить доступ к динамически создаваемым атрибутам и их значениям. Я хотел бы изменить значения с помощью некоторого пользовательского ввода, например нажатия кнопки.

Я пытался использовать словарь и искал, но это не сработало

var inventory = {};
  $.ajax({
url:"phpf/getItems.php",
type:"POST",
data:{},
success: function (data) {
  var result = JSON.parse(data);
  for (var index = 0; index < result.length; index++) {
    var str = String(result[index][0]);
    inventory[str] = 5;
  }
}
});
console.log(inventory["Cookies"]);
console.log(inventory[0]);

Iхотел бы получить доступ к информации об объекте, такой как инвентарь ["что-то"], но консоль говорит, что она не определена, и когда я пытаюсь добавить значение к другому числу, она говорит NAN как результат

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Inventory - это объект, поэтому вы хотите получить доступ к ключам и значениям в вашем объекте, используя точечную запись.

let inventory = 
{
   item1: "Cookie",
   item2: "Cake"
}
inventory.item3 = "Brownies";

console.log(inventory.item1);
console.log(inventory.item2);
console.log(inventory.item3);

Также для циклического перемещения по объекту, который вы хотите пройти, выполните следующие действия:

for (var key in object) {
    //your code here
}
0 голосов
/ 23 октября 2019

Вы уже можете получить доступ к вашим данным, проанализированным с вашего JSON.parse, он возвращает объект, поэтому его можно вызывать с помощью средства доступа ['key']:

let json = '{"key1": 2, "key2": "test"}';
let values = JSON.parse(json);
console.log(values.key1);
console.log(values['key2']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...