欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js實(shí)現(xiàn)json數(shù)據(jù)行到列的轉(zhuǎn)換的實(shí)例代碼

 更新時(shí)間:2013年08月01日 16:15:03   作者:  
為了實(shí)現(xiàn)這樣的數(shù)據(jù)顯示出來(lái)三個(gè)序列,分別為鄭州、新鄉(xiāng)、安陽(yáng)的電量,就需要自己實(shí)現(xiàn)對(duì)這樣數(shù)據(jù)的轉(zhuǎn)換,轉(zhuǎn)換成如下的形式:

月份 鄭州-電量 新鄉(xiāng)-電量 安陽(yáng)-電量
201201 33 29 23
201202 35 26 25
201203 34 27 24
201204 36 28 26
201205 34.3 28.8 24.3
這樣,Ext的圖表就能把它顯示成三個(gè)序列了。
我寫了如下的函數(shù)實(shí)現(xiàn)這個(gè)功能:

復(fù)制代碼 代碼如下:

function CovertData(jsonData,idField, fromField, toField){
var result = [], curRecord =null, num;
var fromFields = fromField.split(',');
// 循環(huán)整個(gè)數(shù)組:[{...},{...},{...},...]
for(var idx=0;idx<jsonData.length;idx++){
num = findIdx(result, idField, jsonData[idx][idField]);
if(num!=-1){
curRecord = result[num];
}
else{
curRecord = {};
};
// 循環(huán)每個(gè)json對(duì)象中的字段
for(var key in jsonData[idx]){
// 處理轉(zhuǎn)換的數(shù)據(jù)內(nèi)容
for(var i=0;i<fromFields.length;i++){
if(key == fromFields[i]){
curRecord[jsonData[idx][toField]+'-' + fromFields[i]] = jsonData[idx][key];
break;
}
}
// 除數(shù)據(jù)內(nèi)容外,只處理標(biāo)識(shí)字段數(shù)據(jù)
if(key == idField){
curRecord[key] = jsonData[idx][key];
}
}
if(num==-1){
result.push(curRecord);
}
}
return result;
}

function findIdx(jsonData, columnName, value){
for(var idx = 0;idx<jsonData.length;idx++){
if(jsonData[idx][columnName]==value)
return idx;
}
return -1;
}
JsTestDriver的測(cè)試代碼如下:
TestCase("Test json data row to column",{
setUp:function(){
this.jsonData = [{yearmonth:201201,ppq:23,spq:27,company:'dfsoft'},
{yearmonth:201202,ppq:33,spq:38,company:'dfsoft'},
{yearmonth:201203,ppq:43,spq:49,company:'dfsoft'},
{yearmonth:201204,ppq:53,spq:51,company:'dfsoft'},
{yearmonth:201201,ppq:29,spq:26,company:'vcom'},
{yearmonth:201202,ppq:34,spq:38,company:'vcom'},
{yearmonth:201203,ppq:48,spq:43,company:'vcom'},
{yearmonth:201204,ppq:52,spq:59,company:'vcom'}];

var fromField = 'ppq,spq', toField = 'company', idField = 'yearmonth';
this.resultData = CovertData(this.jsonData,idField,fromField, toField);
},
"test store has columns":function(){
var month1 = this.resultData[findIdx(this.resultData,'yearmonth',201201)];
var month2 = this.resultData[findIdx(this.resultData,'yearmonth',201202)];
var month3 = this.resultData[findIdx(this.resultData,'yearmonth',201203)];
var month4 = this.resultData[findIdx(this.resultData,'yearmonth',201204)];

assertEquals(4,this.resultData.length);
assertEquals('23',month1['dfsoft-ppq']);
assertEquals('29',month1['vcom-ppq']);
assertEquals('33',month2['dfsoft-ppq']);
assertEquals('34',month2['vcom-ppq']);
assertEquals('43',month3['dfsoft-ppq']);
assertEquals('48',month3['vcom-ppq']);
assertEquals('53',month4['dfsoft-ppq']);
assertEquals('52',month4['vcom-ppq']);

assertEquals('27',month1['dfsoft-spq']);
assertEquals('26',month1['vcom-spq']);
assertEquals('38',month2['dfsoft-spq']);
assertEquals('38',month2['vcom-spq']);
assertEquals('49',month3['dfsoft-spq']);
assertEquals('43',month3['vcom-spq']);
assertEquals('51',month4['dfsoft-spq']);
assertEquals('59',month4['vcom-spq']);
}
})


測(cè)試通過,表示轉(zhuǎn)換成功。

相關(guān)文章

  • js播放wav文件(源碼)

    js播放wav文件(源碼)

    如何用JS播放wav文件,理論上用js在網(wǎng)頁(yè)里嵌入一個(gè)window播放器的插件,可以播放的。,不過通用性不是很好,IE下可以用,感興趣的朋友可以參考下哈本文
    2013-04-04
  • JS鼠標(biāo)滑過圖片時(shí)切換圖片實(shí)現(xiàn)思路

    JS鼠標(biāo)滑過圖片時(shí)切換圖片實(shí)現(xiàn)思路

    在瀏覽網(wǎng)頁(yè)時(shí)會(huì)看到這樣的效果:當(dāng)鼠標(biāo)滑過一張圖片后,這張圖片切換為了另外的一張圖片,下面為大家介紹下具體是如何實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過
    2013-09-09
  • 5分鐘快速掌握J(rèn)S中var、let和const的異同

    5分鐘快速掌握J(rèn)S中var、let和const的異同

    在javascript中有三種聲明變量的方式:var、let、const,這個(gè)是對(duì)新手們來(lái)說應(yīng)該掌握的知識(shí),所以這篇文章主要給大家介紹了關(guān)于如何通過5分鐘快速掌握J(rèn)S中var,let和const的異同,需要的朋友可以參考下
    2018-09-09
  • webpack-dev-server搭建本地服務(wù)器的實(shí)現(xiàn)

    webpack-dev-server搭建本地服務(wù)器的實(shí)現(xiàn)

    當(dāng)我們使用webpack打包時(shí),發(fā)現(xiàn)每次更新了一點(diǎn)代碼,都需要重新打包,我們希望本地能搭建一個(gè)服務(wù)器,本文就介紹如何使用webpack-dev-server搭建本地服務(wù)器,感興趣的可以了解一下
    2021-07-07
  • javascript實(shí)現(xiàn)淘寶幻燈片廣告展示效果

    javascript實(shí)現(xiàn)淘寶幻燈片廣告展示效果

    這篇文章主要介紹了javascript實(shí)現(xiàn)淘寶幻燈片廣告展示效果的方法,以實(shí)例形式完整講述了javascript實(shí)現(xiàn)幻燈效果的javascript、css及html實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-04-04
  • javascript中$(function() {});寫與不寫有哪些區(qū)別

    javascript中$(function() {});寫與不寫有哪些區(qū)別

    javascript中$(function() {....}) 是jQuery中的經(jīng)典用法,等同于 $(document).ready(function() {....}) javascript中$(function() {});寫與不寫有哪些區(qū)別,需要的朋友可以參考下
    2015-08-08
  • ES6 class的應(yīng)用實(shí)例分析

    ES6 class的應(yīng)用實(shí)例分析

    這篇文章主要介紹了ES6 class的應(yīng)用,結(jié)合實(shí)例形式分析了class在ES6面向?qū)ο蟪绦蛟O(shè)計(jì)中定義類的相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • javascript超過容器后顯示省略號(hào)效果的方法(兼容一行或者多行)

    javascript超過容器后顯示省略號(hào)效果的方法(兼容一行或者多行)

    下面小編就為大家?guī)?lái)一篇javascript超過容器后顯示省略號(hào)效果的方法(兼容一行或者多行)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2016-07-07
  • JS操作圖片(增,刪,改) 例子

    JS操作圖片(增,刪,改) 例子

    JS操作圖片(增,刪,改) 例子,需要的朋友可以參考一下
    2013-04-04
  • 微信公眾平臺(tái) 客服接口發(fā)消息的實(shí)現(xiàn)代碼(Java接口開發(fā))

    微信公眾平臺(tái) 客服接口發(fā)消息的實(shí)現(xiàn)代碼(Java接口開發(fā))

    這篇文章主要介紹了微信公眾平臺(tái) 客服接口發(fā)消息的實(shí)現(xiàn)代碼(Java接口開發(fā)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-04-04

最新評(píng)論