javascript 利用hash实现行列转置
利用js的hash实现行列转置:在数据查询过程中可能遇到需要行列转置的情况,但是在列的个数不确定的情况下一般得用存储过程才好实现,下面实现了将数据存储在二维的hash中以实现在js段对数据的行列转置。
实现效果:将
[
{"time":"2015-01-20 15:20:00","douIa":"11.4","varName":"东直门外电源进线201回路"},
{"time":"2015-01-20 15:20:00","douIa":"13.8","varName":"东直门外电源进线202回路"},
{"time":"2015-01-20 15:25:00","douIa":"49.8","varName":"东直门外电源进线201回路"},
{"time":"2015-01-20 15:25:00","douIa":"60.6","varName":"东直门外电源进线202回路"}
]
转化为:
[
{"time":"2015-01-20 15:20:00","东直门外电源进线201回路":"11.4","东直门外电源进线202回路":"13.8"},
{"time":"2015-01-20 15:25:00","东直门外电源进线201回路":"49.8","东直门外电源进线202回路":"60.6"}
]
function jsontest()
{var hdata={};
var fieldX='time',fieldY="douIa",fieldZ="varName";
var strData='[{"time":"2015-01-20 15:20:00","douIa":"11.4","varName":"东直门外电源进线201回路"},{"time":"2015-01-20 15:20:00","douIa":"13.8","varName":"东直门外电源进线202回路"},{"time":"2015-01-20 15:25:00","douIa":"49.8","varName":"东直门外电源进线201回路"},{"time":"2015-01-20 15:25:00","douIa":"60.6","varName":"东直门外电源进线202回路"}]';
var data= jQuery.parseJSON(strData);
//将数据存储在hash中hash[time][varName]
for( var k1 in data) {
if (hdata[data[k1][fieldX]] == null)
hdata[data[k1][fieldX]] = {};
if (fieldY != "") {
hdata[data[k1][fieldX]][data[k1][fieldZ]] = data[k1][fieldY];
}
}
var strJson="";
for(var k1 in hdata)
{
strJson+="{\""+fieldX+"\":\""+k1+"\",";
for(var k2 in hdata[k1])
{
strJson+="\""+k2+"\":\""+ hdata[k1][k2]+"\",";
}
strJson=strJson.substr(0,strJson.length-1)+"},";
}
if(strJson.length>0)
{
strJson="["+strJson.substr(0,strJson.length-1)+"]";
}
//将hash中的数据转换成json格式;
data= jQuery.parseJSON(strJson);
debugger;
}