对于非对象元素的数组进行排序我们有sort()方法: let x = ['a','b','c','ab','ef','good'] x.sort() ["a", "ab", "b", "c", "ef", "good"] let y = [1,2,435,67,34,2,675,89,34] y.sort() [1, 2, 2, 34, 34, 435, 67, 675, 89] 对对象元素的数组按照内部元素的某个特定属性进行排序 var objs = [ { first_nom: 'Lazslo', last_nom: 'Jamf' }, { first_nom: 'Pig', last_nom: 'Bodine' }, { first_nom: 'Pirate', last_nom: 'Prentice' } ]; function compare( a, b ) { if ( a.last_nom < b.last_nom ){ return -1; } if ( a.last_nom > b.last_nom ){ return 1; } return 0; } objs.sort( compare ); //写成内敛形式: objs.sort((a,b) => (a.last_nom > b.last_nom) ? 1 : ((b.last_nom > a.last_nom) ? -1 : 0)); 对对象元素的数组按照传入的动态属性进行排序(可选择排序属性以及升序还是降序) function objArrSort(p,aord){ aord = !aord ? 1:aord;console.log(aord) return function (a,b) { let ap = a[p].toLowerCase() let bp = b[p].toLowerCase() var result = (ap < bp) ? -1 : (ap > bp) ? 1 : 0; return result*aord; } }