一、JavaScript常用的构造数据的方式
1、JavaScript返回{name:xxx,value:xxx}的数组
// data传入的数据
//二维数组: ['SRR123456', '60.51', '20.12', '8']
// ....
// ['SRR123457', '60.51', '20.12', '8']
var dataResult = function (data) {
// 定义一个空数组
let list = [];
// 对二维数组按序号遍历(0,1,2.....n)
Object.keys(data).forEach(function (e) {
// 再定义一个空数组
var res = [];
// 获取序号为0或..n的这一列 ['SRR123456', '60.51', '20.12', '8']
var group = data[e];
// 如果存在
if (group) {
// 向res数组向数组的末尾添加多个列表元素
res.push({
name: group[0],
// 将String类型的数据转换成Int类型
value: Number(group[3]),
});
// 结果:{name:'SRR123456',value:8}
list.push(res);
}
});
return list;
};
结果格式
{name:'SRR123456',value:8}
.....
2、JavaScript返回map类型的数组
// data传入的数据
//二维数组: ['SRR123456', '60.51', '20.12', '8']
// ....
// ['SRR123457', '60.51', '20.12', '8']
var mapResult = function (data) {
// 定义一个空数组
let list = [];
// 对二维数组按序号遍历(0,1,2.....n)
Object.keys(data).forEach(function (e) {
// 再定义一个空数组
let depth = [];
// 新建一个map
var map = new Map();
// 获取序号为0或..n的这一列 ['SRR123456', '60.51', '20.12', '8']
var group = data[e];
// 如果存在
if (group) {
// 先将String类型转换成Double类型,再添加到数组里
depth[0] = parseFloat(group[1]);
depth[1] = parseFloat(group[2]);
}
// 向map里添加数据
map.set(group[0], depth);
//
list.push(map);
});
return list;
};
3、更复杂的多重数据处理
// 结合上面两个代码
var convertData = function (getData) {
var data = dataResult(getData);
var map = mapResult(getData);
var res = [];
Object.keys(data).forEach(function (e) {
let value = data[e];
Object.keys(value).forEach(function (e) {
let key = value[e].name;
let val = value[e].value;
Object.keys(map).forEach(function (e) {
var geo = map[e].get(key);
if (geo) {
res.push({
name: key,
value: geo.concat(val)
});
}
});
})
})
return res;
};
未完待续