Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理JavaScript数组中的空项_Javascript_Node Red - Fatal编程技术网

处理JavaScript数组中的空项

处理JavaScript数组中的空项,javascript,node-red,Javascript,Node Red,我用node red把一些东西放在一起很简单,我不是一个真正的js人,所以我有点挣扎 我必须创建这个json负载。例如,如果VpidA:msg.payload.ChanStat.VpidA[0]为空或未定义,是否有办法将默认值输入?我需要为可能更多的项目执行此操作,我认为可能需要catch语句?虽然看起来可能会变得一团糟…想法 msg.payload=[{ 尺寸:“一个盒子”, 字段:{ Sync:parseInt(syncStatus), cCRC:parseInt(msg.payload.

我用node red把一些东西放在一起很简单,我不是一个真正的js人,所以我有点挣扎

我必须创建这个json负载。例如,如果VpidA:msg.payload.ChanStat.VpidA[0]为空或未定义,是否有办法将默认值输入?我需要为可能更多的项目执行此操作,我认为可能需要catch语句?虽然看起来可能会变得一团糟…想法

msg.payload=[{
尺寸:“一个盒子”,
字段:{
Sync:parseInt(syncStatus),
cCRC:parseInt(msg.payload.ChanStat.cCRC[0]),
yCRC:parseInt(msg.payload.ChanStat.yCRC[0]),
lineRate:msg.payload.ChanStat.lineRate[0],
VpidA:msg.payload.ChanStat.VpidA[0]
},
标签:{
主持人:“一个盒子”,
输入:msg.payload.ChanStat.ChanNum[0],
类型:“sdi”
},
时间戳:新日期()
}];

返回味精您可以使用简单的if语句测试变量的存在性(假设您在函数节点中)


msg.payload.ChanStat.VpidA[0]| | defaultVpidA
为什么
未定义
作为一个值会困扰您?你希望数组元素中没有值的“默认”值是什么?我讨厌数据不一致的情况。。。如果需要一个数组,并且该数组可以为空,则返回一个空数组。我甚至看到过更糟糕的实现,如果有超过1个索引,则将属性作为对象数组返回,如果只有1个索引,则将属性作为对象(唯一一个)返回。。。没有更好的方法来搞乱上一篇文章,实际上是nodered如何将上一篇文章中的消息从XML传递到JSON解析器的问题。。。我需要捕获一个错误,这个属性一开始就不在那里。。如果你明白我的意思,@Barmar最好使用msg.payload.ChanStat.VpidA[0]??如果值为0,则使用defaultVpidA。感谢您,我想,有没有一种方法可以在json有效负载中内联使用它?
if (msg.payload.ChanStat.VpidA[0] == undefined){
   //do what ever needs doing if the property doesn't exist
}