数组Array.sort()排序的方法

数组Array.sort()排序的方法:
如果调用方法sort()时没有使用参数,将按字母顺序(更精确地说,是按照字符编码的顺序)对数组中的元素进行排序。如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,a-b>0则升序,反之降序。

1、升序

arr=[10,1,100]

arr.sort(function(a,b){return a-b})
输出 [1, 10, 100]

2、降序

arr.sort(function(a,b){return b-a})
输出 [100, 10, 1]

3、按字母顺序进行排序

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
console.log(arr.sort())
输出:Adrew,George,James,John,Martin,Thomas

4、对包含对象的数组排序,要求根据对象中的年龄进行由大到小的顺序排列

var arr = [{'name': '张三', age: 25},{'name': '李四', age: 11},{'name': '王五', age: 36},{'name': '赵六', age: 3}];
var objectArraySort = function (keyName) {
 return function (objectN, objectM) {
  var valueN = objectN[keyName]
  var valueM = objectM[keyName]
  if (valueN < valueM) return 1
  else if (valueN > valueM) return -1
  else return 0
 }
}
arr.sort(objectArraySort('age'))
console.log(arr) //
输出: [{'name': '王五', age: 36},{'name': '张三', age: 25},{'name': '李四', age: 11},{'name': '赵六', age: 3}]

你可能感兴趣的:(前端)