这是我的数组:
[
['x', 1],
['y', 2],
['z', 3],
['F', "_180"],
['x', 1],
['y', 2],
['z', 3],
['t', 4]
['F', "_360"],
['x', 1],
['y', 2],
['z', 3],
['t', 4],
['m', 5]
['F', "_480"],
]
这是我要实现的目标:
[{
profile_180: {
x: 1,
y: 2,
z: 3
}
}, {
profile_360: {
x: 1,
y: 2,
z: 3,
t: 4
}
}, {
profile_480: {
x: 1,
y: 2,
z: 3
t: 4,
m: 5
}
}]
我怎么得到这个?
最佳答案
你可以做到的
var res = [], tmp = {}, obj = {};
x.forEach(function(itm,i) {
if(itm[0] !== "F"){
tmp[itm[0]] = itm[1];
} else {
obj["profile_" + itm[1]] = tmp;
res.push(obj);
tmp = {}, obj ={};
}
});
其中
x
是包含array
的data
。