当前位置:嗨网首页>书籍在线阅读

10-数组反转和排序

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

8.2.7 数组反转和排序

reverse 的用法很简单,它会颠倒当前数组的顺序:

const arr = [1, 2, 3, 4, 5]; 
arr.reverse();                   // arr is now [5, 4, 3, 2, 1]

sort 则会对当前数组进行排序:

const arr = [5, 3, 2, 4, 1];
arr.sort();                     // arr is now [1, 2, 3, 4, 5]

sort 还允许指定一个排序函数,这个功能不仅方便而且好用。比如,直接对数组进行排序是没有实际意义的:

const arr = [{ name: "Suzanne" }, { name: "Jim" },
   { name: "Trevor" }, { name: "Amanda" }];
arr.sort();                                // arr没有变化
arr.sort((a, b) => a.name > b.name);       // arr 按照元素name属性的字母顺
                                           //序排序
arr.sort((a, b) => a.name[1] < b.name[1]); // arr按照元素name属性的第二个字
                                           //母的字母顺序就行排序 
在这个例子中,排序函数返回一个布尔值。不过, `sort` 也接受返回值为数字的排序函数。如果返回 `0` ,则表示这两个元素“相等”,函数不改变数组的顺序。这样一来,这个方法的灵活性就很大。比如,需要对除去以字母k开头的单词按照字母顺序排序,排序的结果是所有元素按照字母顺序排列,所有以k开头的元素都在以j开头的元素后面,同时在以l开头的元素之前,但是以k开头的元素会保持它们的原始顺序。