Начальную десятичную точку можно спутать с точкой - PullRequest
0 голосов
/ 19 сентября 2018

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

Мне нужно извлечь один темп.Я использую это:

var newMsg = { payload: msg.payload.hourly_forecast.0.temp.metric };
return newMsg;

msg.payload.hourly_forecast.0.temp.metric работает, если я помещаю его в консоль отладки, но в моей функции у меня есть эта ошибка:

Может ли начальная десятичная точкапутать с точкой: '.0'

Итак, я должен попробовать это:

var toto = 0;
var newMsg = { payload: msg.payload.hourly_forecast + '.' + toto + '.' + temp.metric };
return newMsg;

Но не работает, и ошибка

ReferenceError: temp не определено (строка 2, столбец 74)

enter image description here

Ответы [ 2 ]

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

Для адресации элементов массива в JavaScript вы используете обозначение в квадратных скобках:

var newMsg = { payload: msg.payload.hourly_forecast[0].temp.metric };
return newMsg;

Боковую панель отладки в Node-RED также можно использовать для определения пути к любому элементу сообщения.Это описано в документации здесь: https://nodered.org/docs/user-guide/messages#understanding-the-structure-of-a-message

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

msg.payload.hourly_forecast - это массив, показанный вами здесь https://ibb.co/ejaxge

Пожалуйста, используйте msg.payload.hourly_forecast[0].temp.metric.

Подробнее о массиве здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

...