前导小数点可以与点混淆

时间:2018-09-19 07:39:11

标签: javascript node.js function node-red

我尝试获取一些节点为红色的地下天气信息。我已发出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:未定义温度(第2行,第74行)

enter image description here

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

要在JavaScript中处理数组元素,请使用方括号符号:

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

Node-RED中的Debug侧栏也可以用于标识任何消息元素的路径。在此处的文档中对此进行了描述:https://nodered.org/docs/user-guide/messages#understanding-the-structure-of-a-message