- var numbers = [4, 2, 5, 1, 3];
- numbers.sort((a, b) => a - b);
- console.log(numbers);
-
- // [1, 2, 3, 4, 5]
其实在我们实际开发中,经常会遇到这样的问题,我们收到后端传过来的数据,然后我们需要根据数据中的某一项来排序。
比如有以下数据:
- var items = [
- { name: 'Edward', value: 21 },
- { name: 'Sharpe', value: 37 },
- { name: 'And', value: 45 },
- { name: 'The', value: -12 },
- { name: 'Zeros', value: 37 }
- ];
1.按对象value排序
- // sort by value
- items.sort((a, b) => Number(a.value) - Number(b.value));

2.按对象name排序
- // sort by name
- items.sort(function(a, b) {
- //忽略大小写
- var nameA = a.name.toUpperCase();
- var nameB = b.name.toUpperCase();
- if (nameA < nameB) {
- return -1;
- }
- if (nameA > nameB) {
- return 1;
- }
- //name相等时
- return 0;
- });
