JS 对Array集合排序的方法
我的业务是根据距离的远近经行一个排序;
第一种方法:冒泡排序
排序前的数据是这样子的:
排序后是这样子的:
代码可以直接复制使用的:
doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
script>
head>
<body>
<script type="text/javascript">
$(function(){
var _arrayList=new Array();
var _newArrayList=new Array();
_arrayList[0]={"id":1,"name":"张三","distance":100};
_arrayList[1]={"id":2,"name":"李四","distance":120};
_arrayList[2]={"id":3,"name":"王武","distance":80};
_arrayList[3]={"id":4,"name":"二狗","distance":40};
_arrayList[4]={"id":5,"name":"屎蛋","distance":160};
for(var i=0;i<_arrayList.length;i++)
{
for(var u=i+1;u<_arrayList.length;u++)
{
if(parseFloat(_arrayList[i]["distance"])>parseFloat(_arrayList[u]["distance"]))
{
var num=[];
num=_arrayList[i];
_arrayList[i]=_arrayList[u];
_arrayList[u]=num;
}
}
}
console.log(_arrayList);
});
script>
body>
html>
第二种方法:JavaScript sort()
经过网友的介绍知道了这个set方式,太好用了!
直接上代码:
DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
script>
head>
<body>
<div>
<table>
<thead>
<tr>
<td>Idtd>
<td>姓名td>
<td>距离(米)td>
tr>
thead>
<tbody id="arrayDiv">
<tr><td>td><td>td><td>td>tr>
tbody>
table>
div>
<script>
$(function () {
var result = [
{ "id": 1, "name": "张三", "distance": 100 },
{ "id": 2, "name": "李四", "distance": 120 },
{ "id": 3, "name": "王武", "distance": 80 },
{ "id": 4, "name": "二狗", "distance": 40 },
{ "id": 5, "name": "屎蛋", "distance": 160 }
];
function sortId(a, b) {
return a.distance - b.distance;//由低到高
//return b.distance - a.distance;//由高到低
}
result.sort(sortId);
console.log(result);
var _html = "";
for (var i = 0; i < result.length; i++) {
_html += "" + result[i].id + " " + result[i].name + " " + result[i].distance + " ";
}
$("#arrayDiv").html(_html);
});
script>
body>
html>
这是运行效果