Поиск значения в JSON и возврат в консоль - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь найти значение в файле JSON, используя поле ввода от пользователя через браузер.

Пример объекта JSON из массива объектов выглядит следующим образом:

enter image description here

У меня есть прослушиватель событий, чтобы дождаться клика от пользователя.После того, как пользователь щелкнет, функция перейдет на сайт API и получит все данные.

Далее я хотел бы найти в данных JSON то, что набрал пользователь.

Пример:

enter image description here

пользовательский ввод: "Cannonball"

ожидаемый вывод: 196 (buy_average)

Однако я не могу понять, как искать в массиве объектов.

Вот что я получил:

параметр "data" - это объекты JSON, которые были получены из API.Я знаю, что это работает правильно, потому что я могу отобразить его в консоли.

function renderHTML(data) {
  var searchVal = document.getElementById("search").value;
  console.log(searchVal);
  for (i=0; i<data.length; i++) {
    if (data["i"].name == searchVal) {
      console.log(data["i"].buy_average);
    }
  }
};

На данный момент я просто пытаюсь понять, как просматривать массив объектов после извлечения его из Интернета.и отобразить его на консоли.

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

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Если данные являются объектом, свойство length даст вам undefined.Вы можете получить значения с помощью Object.values ​​(), а затем перебрать свойства.

let data = {
    0:{        id:0,name:"aa"    },
    1:{        id:1,name:"Cannonball"},
    2:{        id:2,name:"xx"    },
};

let searchVal = "Cannonball";
Object.values(data).forEach(e=>{
   if(e.name === searchVal){
       console.log("This is the object: ");
       console.log(e);
   }
});
0 голосов
/ 10 декабря 2018

Попробуйте , а не , используя i в качестве строки - используйте вместо этого целое число:

if (data[i].name == searchVal) {
  console.log(data[i].buy_average);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...