基于JavaScript根据字段对Json数据进行排序
首先,介绍js内置的sort()方法。
默认情况下,此方法按字母顺序对数组中的元素进行排序。更准确地说,它按照字符编码的顺序对元素进行排序。
请参见以下示例:
当数组中的元素是数字类型时,排序结果与我们想象的完全不同,因为默认排序是按照字符编码的顺序进行的。
解决方案:sort()方法接收一个可选参数(这个参数必须是函数),我们可以定义自己的排序规则,如下图所示。
二、json排序的具体实现。
/* * @description根据字段对json数组进行排序* @ param array json array object to sort * @ param field sort field(此参数必须为字符串)* @param reverse为reverse(默认值为false) * @return array返回排序后的json数组*/function json sort (array,field,reverse){//数组长度小于2或者未指定排序字段或者不是JSON格式数据if(array.length 2 ||!字段||数组[0]的类型!=='object ')返回数组;//数字类型排序if(数组[0][字段]的类型===' number') {array。sort(函数(x,y){ return x[field]-y[field]});}//字符串类型排序if(数组[0][字段]的类型===' string') {array。sort(函数(x,y) {return x [field])。区域设置比较(y[field])});}//reverse if(reverse){ array . reverse();}返回数组;} PS: js: json对象数组按对象属性排序。
var array=[ {name: 'a '、phone: 1}、{name: 'b '、phone: 5}、{name: 'd '、phone: 3}、{name: 'c '、phone : 4 }]array . sort(getsort fun(' desc '、' phone ');函数getSortFun(order,sort by){ var ordAlpah=(order==' ASC ')?'' : '';var sortFun=新函数(' a ',' b ','返回a . ' sort by or alpah ' b . ' sort by '?1:-1');返回sortFun} alert(JSON . stringify(array));数组本身有一个排序方法,可以指定一个排序函数,所以可以动态生成一个排序函数来满足根据指定的对象属性进行排序的要求。
注意:排序后原数组顺序会改变!
版权声明:基于JavaScript根据字段对Json数据进行排序是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。