Javascript TypeError:无法读取属性';0';推送代码后的空值

Javascript TypeError:无法读取属性';0';推送代码后的空值,javascript,Javascript,控制台上显示的错误为: TypeError: Cannot read property '0' of null at app.post (/root/src/master.js:24:29) 师父24:29这是吗 let outputs = req.body.outputs let outs = [] for (let out of outputs) { outs.push({ address: out.addresses[0], value: ou

控制台上显示的错误为:

TypeError: Cannot read property '0' of null
    at app.post (/root/src/master.js:24:29)
师父24:29这是吗

let outputs = req.body.outputs
  let outs = []
  for (let out of outputs) {
   outs.push({
     address: out.addresses[0],
      value: out.value
    })}
  }
第24行是地址:
out.地址[0],

来自此json的请求

"outputs": [
{
"value": 10000,
"script": "a91402f42dce015def2fab0b1d6f7f6c742bae66e75e87",
"addresses": [
"31xdnmzVzmAQ5CaWxtiDr3jwCFfeUpHEb1"
],
"script_type": "pay-to-script-hash"
},
{
"value": 1020,
"script": "0014396ef6487043092385338ccfe9d327fb031975d6",
"addresses": null,
"script_type": "pay-to-witness-pubkey-hash"
}
]

有人能帮我修一下吗?非常感谢

地址为空。可以添加空检查

let outputs = req.body.outputs
let outs = []
for (let out of outputs) {
    outs.push({
      address: out.addresses ? out.addresses[0] : '',
      value: out.value
    })}
}

由于您的
地址可以为空(根据您共享的样本输出)


如果
out.addresses
在对象中的某个位置为
null

address
为null,则设置空数组

因此,您可以添加一个条件,使用
terniary
操作符检查
address
是否
present

let outputs = req.body.outputs
  let outs = []
  for (let out of outputs) {
   outs.push({
     address: out.addresses ? out.addresses[0] : '',
      value: out.value
    })}
  }
地址:out.addresses?out.地址[0]:'',


上一行检查是否存在
out.addresses`,如果存在,则返回,否则返回空字符串。

请向我们展示您的
输出
的样子。
out.addresses
很可能是
null
。。。如错误消息中所述。-->在第二个输出中
“addresses”:null,
,因为您的帮助伙伴的JsonTank中有
“addresses”:null,
!谢谢你的帮助,伙计!谢谢你的帮助和解释!祝你有美好的一天!很高兴帮助你。你可以投票表决我的答案。如果您觉得有用的话。:-)
let outputs = req.body.outputs
  let outs = []
  for (let out of outputs) {
   outs.push({
     address: out.addresses ? out.addresses[0] : '',
      value: out.value
    })}
  }