从一个实例看javascript几种常用格式的转换
2014-02-26 13:52
204 查看
要对如图一所示的左侧table的数据按照“总量”进行排序
1,在前端实现
2,数据格式为object,如图二
原创文章,转载请注明:http://www.cnblogs.com/phpgcs
javascript中经常操作就是json/object/array,它们之间也经常需要转换。
json/object没有sort方法,array有;因此先将data转换为array
不只是排序,其他很多操作如获取长度,增加删除元素,取最大最小值都需要转换为Array
再打印以下 排序之后的 proarray变量(array)
原创文章,转载请注明:http://www.cnblogs.com/phpgcs
完整的源码如下:
延伸:
javascript中常用数据格式的转换
json->array
array->string
string->array
object->json
array->object
参考:
http://phpgcs.com/2013/10/31/javascript-tricks-collection.html
http://stackoverflow.com/questions/17684921/sort-json-object-in-javascript
http://stackoverflow.com/questions/1069666/sorting-javascript-object-by-property-value
http://stackoverflow.com/questions/4215737/convert-array-to-object
1,在前端实现
2,数据格式为object,如图二
原创文章,转载请注明:http://www.cnblogs.com/phpgcs
javascript中经常操作就是json/object/array,它们之间也经常需要转换。
json/object没有sort方法,array有;因此先将data转换为array
不只是排序,其他很多操作如获取长度,增加删除元素,取最大最小值都需要转换为Array
var proarray = []; for(x in data['province']) { proarray.push([x, data['province'][x]]); } proarray.sort(function(b,a){ //因为是对总量进行排序,所以要对正面、中性、负面的总和进行比较 return a[1]['zm']-b[1]['zm']+a[1]['zx']-b[1]['zx']+a[1]['fm']-b[1]['fm']; });
再打印以下 排序之后的 proarray变量(array)
原创文章,转载请注明:http://www.cnblogs.com/phpgcs
完整的源码如下:
console.log(data['province']); console.log(typeof(data['province'])); var counter = 1; var tbody = ''; tbody +=' <table class="table table-striped table-bordered table-hover" id="weiboprovince_table"> <thead> <tr> <th style="width:8px;">#</th> <th>省份</t h> <th>总量</th> <th>正面</th> <th>负面</th> </tr> </thead> <tbody>'; var proarray = []; for(x in data['province']) { proarray.push([x, data['province'][x]]); } proarray.sort(function(b,a){ return a[1]['zm']-b[1]['zm']+a[1]['zx']-b[1]['zx']+a[1]['fm']-b[1]['fm']; }); for(x in proarray) { tbody += '<tr>'; tbody += '<td>'; tbody += '<div class="label label-success" style="color:white;">'+(counter++)+'</div>'; tbody += '</td>'; tbody += '<td>'; tbody += proarray[x][0]; tbody += '</td>'; tbody += '<td>'; tbody += parseInt(proarray[x][1]['zm']+ proarray[x][1]['zx'] + proarray[x][1]['fm']); tbody += '</td>'; tbody += '<td>'; tbody += proarray[x][1]['zm']; tbody += '</td>'; tbody += '<td>'; tbody += proarray[x][1]['fm']; tbody += '</td>'; tbody += '</tr>'; } tbody += '</tbody>'; tbody += '</table>'; $('#map_list').html(tbody);
延伸:
javascript中常用数据格式的转换
json->array
function json2array(json){ var result = []; var keys = Object.keys(json); keys.forEach(function(key){ result.push(json[key]); }); return result; } //example json2array({a:1,b:2}); [1, 2] //more complex example json2array({20131013: 66, 20131014: 198, 20131015: 253, 20131016: 352, 20131017: 293, 20131018: 277, 20131019: 111, 20131020: 91, 20131021: 255, 20131022: 256, 20131023: 293, 20131024: 390, 20131025: 401, 20131026: 117, 20131027: 45, 20131028: 54, 20131029: 59, 20131030: 66, 20131031: 109, 20131101: 32}); [66, 198, 253, 352, 293, 277, 111, 91, 255, 256, 293, 390, 401, 117, 45, 54, 59, 66, 109, 32]
array->string
var a = [{"obj1":"phpgcs"}, {"obj2":"ganiks"}] console.log(a); //[Object, Object] JSON.stringify(a) //"[{"obj1":"phpgcs"},{"obj2":"ganiks"}]"
string->array
"1,2".split(",").map(Number); [1, 2] "1,2".split(","); ["1", "2"] JSON.parse("["+"1,2"+"]"); [1, 2]
object->json
//php print_r($response); .post(url, params, function(data){ console.log(data);//data并不是规范的JSON格式的 data = $.parseJSON(data); console.log(data); }); //这里如果直接用.getJSON方法获取ajax数据则直接就是规范的JSON数据
array->object
function toObject(arr) { var rv = {}; for (var i = 0; i < arr.length; ++i) rv[i] = arr[i]; return rv; } Your array already is more-or-less just an object, but arrays do have some "interesting" and special behavior with respect to integer-named properties. The above will give you a plain object. edit oh also you might want to account for "holes" in the array: function toObject(arr) { var rv = {}; for (var i = 0; i < arr.length; ++i) if (arr[i] !== undefined) rv[i] = arr[i]; return rv; }
参考:
http://phpgcs.com/2013/10/31/javascript-tricks-collection.html
http://stackoverflow.com/questions/17684921/sort-json-object-in-javascript
http://stackoverflow.com/questions/1069666/sorting-javascript-object-by-property-value
http://stackoverflow.com/questions/4215737/convert-array-to-object
相关文章推荐
- javascript将中国数字格式转换成欧式数字格式的简单实例
- Python中time模块和datetime模块的常用操作以及几种常用时间格式间的转换
- javascript中将json格式字符串转换成json对象实例
- 【Android】直播必备之YUV使用总结 —— 常用的几种格式:NV21/NV12/YV12/YUV420P的区别
- 实例:常用数据类型之间的相互转换
- C#常用日期格式处理转换[C#日期格式转换大全]
- word转换为图片格式的几种方式
- C#中把任意类型的泛型集合转换成SQLXML数据格式的实例
- web字体格式及几种在线格式转换工具介绍
- web字体格式及几种在线格式转换工具介绍
- javascript学习教程之---如何从一个tab切换到banner幻灯片的转换
- javaScript与python(django)前后台传输数据格式的转换
- Java中常用的一种时间格式的转换方法
- php的几种常用的数据交换格式
- JavaScript中扩展字符串与Date对象之间的转换,支持大多数日期格式的字符串(包括中文)
- C#常用日期格式处理转换
- 常用的几种 Javascript Ajax Tabs
- Javascript类型转换的规则实例解析
- javascript学习(十五):js中对象的常用的几种创建方式
- 如何:将图像从一种格式转换为另一种格式 C#