问题描述
我正在尝试从多个JSON数组中提取多个值以创建饼图。
下面的函数只能获取一个值,但是我想要从这些数组获取所有值,例如,标记应返回“未标记”,“ HK_Online”,“ HK_Order / Change address”,但仅返回“ HK_Online”。
我的功能节点
var value = msg.payload.lines[0][1].value;
var tag = msg.payload.lines[1][0].value;
msg.topic = tag;
msg.payload = value;
return msg;
JSON数据
{
"axes": {
"x": [
{ "name": "Tag","type": "string" },{ "name": "Total","type": "number" },{ "name": "Percentage","type": "percent" },{ "name": "Delta","type": "delta" }
]
},"lines": [
[
{ "type": "string","value": "Untagged" },{ "type": "number","value": 1 },{ "type": "percent","value": 20 },{ "type": "delta","value": 100 }
],[
{ "type": "string","value": "HK_Online" },"value": 4 },"value": 80 },"value": "HK_Order/Change address" },"value": 100 }
]
]
}
解决方法
您可以使用map方法从lines数组创建新数组
let lines = msg.payload.lines
let tag = lines.map(item => item[0].value)
let value = lines.map(item => item[1].value)