Как перебрать ответ массива от Zillow api в Node JS
Я проверил другие ответы и не мог понять это. Я не могу сказать, правильны ли данные, которые я получаю, или мой цикл неверен. Я пытаюсь получить доступ к значениям этого массива в моем ответе.
Используя библиотеку узлов, я получаю доступ к Zillow API с помощью этого кода:
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 ответ
Если то, что вы показываете во втором блоке кода, это то, что вы видели, когда делали 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;
});