井井客

搜索

JS对象数组排序(JSON内数组排序)

也是前段时间做的,需要给一批数据按照时间发布排序,网上搜索的代码,主要应用在JS对象数组上面进行的。

JS对象数组排序(JSON内数组排序)

具体代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>JS对象数组排序(JSON内数组排序)</title>
</head>
<body>
<script>
//模拟数据
var myData = [
	{"id":285,"status":3,"userId":123,"name":'b'},
	{"id":457,"status":2,"userId":857,"name":'a'},
	{"id":145,"status":1,"userId":821,"name":'d'}
];
//给对象数组排序
function JsonSort(data,key){
    for(var j=1;j < data.length;j++){
        var temp = data[j],
            val  = temp[key],
            i    = j-1;
        while(i >=0 && data[i][key]>val){
            data[i+1] = data[i];
            i = i-1;    
        }
        data[i+1] = temp;
    }
    return data;
}
//案例--按拼音
console.log(JSON.stringify(JsonSort(myData,'name')));
//案例--按数字
console.log(JSON.stringify(JsonSort(myData,'status')));
</script>
</body>
</html>

传递给函数的data是一个数组,数组中的每一个值都是一个对象,每个对象与其它对象的“属性”都是相同的。而传递的key就是按什么“属性”排序。

还是比较好理解的~这一段代码主要是升序,如果是降序的话侧 是把while(i >=0 && data[i][key]>val)这一段代码改为while(i >=0 && data[i][key]<val)

感觉这个排序的核心就是冒泡算法,通过冒出大值与小值的方式,将数据从左到右按照大或小的方式进行排序。

文章TAG:js

作者:井井客整理来源:互联网
本文标题:JS对象数组排序(JSON内数组排序)
本文链接:/c/13179.html

上一篇:JS转换金额之数字到中文的转化
下一篇:jquery使用ul仿select下拉菜单效果[代码简单]

文章分类

相关阅读

随便看看