javascript 利用hash实现行列转置

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值