在我的节点 - 红色函数中,我一直在努力处理sg.payload。
这是代码
var js = msg.payload;
var output = {};
//var Ids = js.events.sum;//.value;
//var labels = js.externalIds.Id;
js.forEach(function(sum){
output.push(js.events.sum);
})
msg.payload = output;
console.log(msg.payload);
return msg;
我已经尝试过存储一个" json.parse((" - msg和msg.payload的变量,但是每次我收到'意外O'错误。
我一直在看
foreach不是JavaScript数组的功能错误
foreach不是函数错误
SyntaxError:位置1
的JSON中的意外令牌O但是这些尚未澄清如何处理味精对象。
以下内容也有助于其他原因,但不能弄清为什么我的JS变量不能``foreach'':
https://nodered.org/docs/user-guide/messages
https://nodered.org/docs/user-guide/writing-functions
确切的错误是TypeError: js.forEach is not a function
澄清赞赏。
编辑
我正在尝试从API调用中选择数据,该数据返回相同类型数据的多个实例的JSON(不同的值(。从相同类型的实例中,我试图选择一种类型的返回值。
例如,
假设返回的json是这样的结构:
{
"tupperware": [
{
"spoon": "salad spoon",
"fork": "soup fork"
},
{
"spoon": "soup spoon",
"fork": "cake fork"
}
],
}
,我正在尝试仅选择叉子值。我该怎么做?
{}.forEach
不是一个函数,因为它不是。我认为您想要for in
循环。
其他问题:
- 您的
output
变量是一个空对象,但是您正在尝试使用push
。那行不通。那应该是一个数组。 - 在您当前的
forEach
循环中(不起作用(,您正在尝试按js.events.sum
。我认为您只需要推sum
,但目前尚不清楚您实际上是什么。
这是for in
循环的示例。
const myObj = {test: 1};
for(const el in myObj) {
console.log(myObj[el]);
}
您的代码:
var js = msg.payload;
var output = []; // This should be an array if you intend `push`ing to it.
for(const el in js) {
output.push(js[el]); // Not exactly sure what you're trying to push here
}
msg.payload = output;
console.log(msg.payload);
return msg;
https://developer.mozilla.org/en-us/docs/web/javascript/reference/reference/statement/statements/for...in