Below is my JSON object
var validation_messages ={
"test1": [{
"1": {
"rssi": -25,
}
}, {
"2": {
"rssi": -25,
}
}],
"test2": [{
"15": {
"rssi": -10,
}
}, {
"19": {
"rssi": -21,
}
}]
}
and below is what I have tried
var rssival= []; for (var key in validation_messages) {
var obj = validation_messages[key];
for (var i=0; i<obj.length; i++) {
for(x in obj[i]){
rssival.push(obj[i][x].rssi);
}
}
} console.log(rssival)
I am getting output as
[-25, -25, -10, -21]
But I need an output as
[[-25, -25], [-10, -21]]
Can anyone please help me?
Below is my JSON object
var validation_messages ={
"test1": [{
"1": {
"rssi": -25,
}
}, {
"2": {
"rssi": -25,
}
}],
"test2": [{
"15": {
"rssi": -10,
}
}, {
"19": {
"rssi": -21,
}
}]
}
and below is what I have tried
var rssival= []; for (var key in validation_messages) {
var obj = validation_messages[key];
for (var i=0; i<obj.length; i++) {
for(x in obj[i]){
rssival.push(obj[i][x].rssi);
}
}
} console.log(rssival)
I am getting output as
[-25, -25, -10, -21]
But I need an output as
[[-25, -25], [-10, -21]]
Can anyone please help me?
Share Improve this question asked Mar 17, 2017 at 12:07 Delphin SamDelphin Sam 1422 silver badges13 bronze badges4 Answers
Reset to default 5You can try something like this:
var validation_messages={"00:11:74:41:3d:f0":[{1:{channel:1,type:2,rssi:-25,rate:24}},{2:{channel:1,type:2,rssi:-25,rate:24}}],"00:23:68:bd:6c:19":[{15:{channel:1,type:0,rssi:-10,rate:1}},{19:{channel:1,type:2,rssi:-21,rate:54}}]};
var result = Object.keys(validation_messages).map(function(k){
var tmp = [];
validation_messages[k].forEach(function(o){
for(var k in o){
tmp.push(o[k].rssi)
}
})
return tmp
});
console.log(result)
Isn't this what you need?
var validation_messages={"00:11:74:41:3d:f0":[{1:{channel:1,type:2,rssi:-25,rate:24}},{2:{channel:1,type:2,rssi:-25,rate:24}}],"00:23:68:bd:6c:19":[{15:{channel:1,type:0,rssi:-10,rate:1}},{19:{channel:1,type:2,rssi:-21,rate:54}}]};
var rssival = [];
for (var key in validation_messages) {
var obj = validation_messages[key];
var aux = [];
for (var i = 0; i < obj.length; i++) {
for (x in obj[i]) {
aux.push(obj[i][x].rssi);
}
}
rssival.push(aux);
}
console.log(rssival);
https://jsfiddle/etbzjs0x/
Another approach.
var obj = {"00:11:74:41:3d:f0":[{1:{channel:1,type:2,rssi:-25,rate:24}},{2:{channel:1,type:2,rssi:-25,rate:24}}],"00:23:68:bd:6c:19":[{15:{channel:1,type:0,rssi:-10,rate:1}},{19:{channel:1,type:2,rssi:-21,rate:54}}]},
result = Object.keys(obj).map(function(v) {
var arr = [];
obj[v].forEach(c => arr.push(c[Object.keys(c)].rssi));
return arr;
});
console.log(result);
You could group all properties with Array#map
.
var validation_messages = validation_messages = { "00:11:74:41:3d:f0": [{ "1": { channel: 1, type: 2, rssi: -25, rate: 24 } }, { "2": { channel: 1, type: 2, rssi: -25, rate: 24 } }], "00:23:68:bd:6c:19": [{ "15": { channel: 1, type: 0, rssi: -10, rate: 1 } }, { "19": { channel: 1, type: 2, rssi: -21, rate: 54 } }] },
grouped = Object.keys(validation_messages).map(function (k) {
return validation_messages[k].reduce(function (r, o) {
Object.keys(o).forEach(function (l) {
r.push(o[l].rssi);
});
return r;
}, []);
});
console.log(grouped);
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745040228a4607765.html
评论列表(0条)