Javascript 节点红色:使用可变键/标识符创建消息
有这样一条信息:Javascript 节点红色:使用可变键/标识符创建消息,javascript,json,node-red,Javascript,Json,Node Red,有这样一条信息: [ { "source_id": 1, "alias": "myalias1", }, { "source_id": 2, "alias": "myalias2", } ] [ { "myalias1": 1,
[
{
"source_id": 1,
"alias": "myalias1",
},
{
"source_id": 2,
"alias": "myalias2",
}
]
[
{
"myalias1": 1,
},
{
"myalias2": 2,
}
]
我想把它变成这样的信息:
[
{
"source_id": 1,
"alias": "myalias1",
},
{
"source_id": 2,
"alias": "myalias2",
}
]
[
{
"myalias1": 1,
},
{
"myalias2": 2,
}
]
为此,我使用以下函数:
var result = [];
var str = "";
for(var i = 0; i < msg.payload.length; i++)
{
var alias = msg.payload[i].alias;
var src = msg.payload[i].source_id;
result.push({ alias : src });
}
msg.options = result;
return msg;
在“result.push({alias:src});”行中,我尝试用作标识符(var别名)的所有内容都将被解释为字符串,即使没有撇号。如何使用变量的值作为消息中的标识符?您需要使用方括号表示法从变量向对象添加键
var result = [];
var str = "";
for(var i = 0; i < msg.payload.length; i++)
{
var alias = msg.payload[i].alias;
var src = msg.payload[i].source_id;
var entry = {}
entry[alias] = src
result.push(entry);
}
msg.options = result;
return msg;
var结果=[];
var str=“”;
对于(var i=0;i