Как перебрать ответ массива от Zillow api в Node JS - PullRequest
0 голосов
/ 06 сентября 2018

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

Используя библиотеку узлов, я получаю доступ к API Zillow с этим кодом:

const Zillow = require("node-zillow")

const zillow = new Zillow('my key')

const parameters = {
    address: "5555 Ronald Road",
    citystatezip: "South Gate, CA",
    rentzestimate: true
}

zillow.get('GetSearchResults', parameters)
    .then(results => {
        console.log(results)
        return results
    })

Возвращает следующее:

{ request: { address: '5555 Ronald Road', citystatezip: 'South Gate, CA' },
  message: { text: 'Request successfully processed', code: '0' },
  response: { results: { result: [Array] } } }

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

Я пытаюсь добавить это:

for (let item of results) {
  console.log(results)
}

Поскольку я полагал, что это массив, я мог бы сделать это console.log (results [0]), который возвращает undefined.

1 Ответ

0 голосов
/ 06 сентября 2018

Если то, что вы показываете во втором блоке кода, это то, что вы видели, когда вы делали console.log(results) в обработчике .then(), тогда массив будет в results.response.results.result. Вот как вы переходите к подобъектам в объекте, к которому относится ваш вызов zillow.get().

Вы можете сделать console.log(results.response.results.result), чтобы увидеть содержимое массива в стороне от обработчика .then().

zillow.get('GetSearchResults', parameters).then(results => {
    let resultsArray = results.response.results.result;
    console.log(resultsArray);
    for (let item of resultsArray) {
        console.log(item);
    }
    return resultsArray;
});
...