在最近的一個項目中使用到了js排序。在以前都是對單個屬性進行排序的,但是這次是要對一個對象的屬性進行排序。
在項目中我需要對返回的距離進行升序。代碼如下
for (var k = 0,l = data.length; k < l; k++) { //擷取距離 var lat = data[k].lat; var lng = data[k].lng; var map = new BMap.Map(); //Memory.GetValue("Longitude")Memory.GetValue("Latitude"); var pointB = new BMap.Point(lat, lng); var distances = map.getDistance(pointA, pointB); if (distances == 0) { //datas = detailDatas.replace('@100',0); } else { var _t = distances.toString().indexOf('.'); _d = distances.toString().substring(0, _t); } data[k].distance = _d;}data.sort(function(o1, o2) { return o1.distance - o2.distance;});
我覺得我有必要對代碼進行說明:
我得到的資料是一個json的list,使用百度提供的介面對座標之間的舉例進行排序。data[k].distance = _d;這行代碼是向js對象新增一個距離的屬性。
核心代碼:
data.sort(function(o1, o2) { return o1.distance - o2.distance;});
是根據距離進行升序。如果需要降序可以改為:
data.sort(function(o1, o2) { return o2.distance - o1.distance;});
本文出自 “夢朝思夕” 部落格,請務必保留此出處http://qiangmzsx.blog.51cto.com/2052549/1302395