1.利用es6 sort 方法
function sort1(arr){ arr.sort(function(a,b){ return a-b }); return arr; };
如果想要降序排列,改为 return b-a
2.利用中间值,切换两个值的位置
function sort2(arr){ var i = 0, len = arr.length, j, d; for(; i<len; i++){ for(j=0; j<len; j++){ if(arr[i] < arr[j]){ d = arr[j]; arr[j] = arr[i]; arr[i] = d; } } } return arr; };
3.针对元素为对象的数组排序,依然利用 sort 方法,但是需要写一个方法控制排序字段
var arr=[ {name:"George", age:5, retiredate:"2018.01.02"}, {name:"Edward", age:25, retiredate:"2017.01.02"}, {name:"Christine", age:58, retiredate:"2018.03.02"}, {name:"Sarah", age:62, retiredate:"2016.06.02"} ]; var by = function(name){ return function(o, p){ var a, b; if (typeof o === "object" && typeof p === "object" && o && p) { a = o[name]; b = p[name]; if (a === b) { return 0; } if (typeof a === typeof b) { return a < b ? -1 : 1; } return typeof a < typeof b ? -1 : 1; } else { throw ("error"); } } }; arr.sort(by("age")); console.log(arr);
以上就是今天总结的数组排序的三个方法,如有表述不准确之处,欢迎指正,欢迎补充,感谢阅读。