我试图将数组中的多个对象存储为变量。我真的希望这是有道理的。
所以,我能够将一个数组元素存储在一个变量中。
var data = msg.payload.data;
msg.payload = data.observations[0].clientMac;
return msg;
但是我不是只是来自键0的MAC,而是想循环遍历每个键,抓住mac并将其存储在一个新的数组中。我不知道该怎么做。
以下是数据格式化的示例:
{
"apMac" : "aa:bb:cc:11:22:33",
"apFloors" : [],
"apTags" : [],
"observations" : [{
"ipv4" : null,
"location" : {
"lat" : 5.73212614236217,
"lng" : -5.01730431523174,
"unc" : 1.5059361681363623,
"x" : [],
"y" : []
},
"seenTime" : "2015-09-30T10:59:01Z",
"ssid" : null,
"os" : null,
"clientMac" : "bb:cc:dd:33:22:11",
"seenEpoch" : 1443610741,
"rssi" : 46,
"ipv6" : null,
"manufacturer" : "Hewlett-Packard"
}
]
}
答案 0 :(得分:1)
data.observations
只是一个对象数组。迭代数组有很多种方法。这是一个:
data.observations.forEach(function(item) {
console.log(item.clientMac);
});
或者,如果要创建它们的数组,可以这样做:
var macs = data.observations.map(function(item) {
return item.clientMac;
});
console.log(macs); // an array of clientMac properties
您可以查看array.map()和array.forEach()的文档。
答案 1 :(得分:0)
你也可以写:
for( var item in data.observations){
console.log(item.bla);
}
或
for(var index=0;index<data.observations.length;index++){
console.log(data.observations[index].bla);
}