美文网首页聚享小站
对数组中的元素排序

对数组中的元素排序

作者: wmui | 来源:发表于2022-02-19 20:31 被阅读0次
  • 背景
  • 在进行数据展示的时候,有时候后端返回我们的数据不符合我们的要求,在数据量较小的情况下,前端去处理数据的排序可能更合适,下面是几种常用的数据排序方式。

  • 字符串数组排序
  • 简单回顾下数组的sort方法,默认排序顺序是升序,也就是将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列,比如说['March', 'jan', 'Feb', 4, 3, 'dec'].sort()返回的是[3, 4, 'Feb', 'March', 'dec', 'jan'],数字的单元值 < 大写英文字母 < 小写英文字母

    因此对于格式一致的英文单词排序,直接用sort方法即可

    const months = ['March', 'Jan', 'Feb', 'Dec'];// 升序: ['Dec', 'Feb', 'Jan', 'March']months.sort()// 倒序: ['March', 'Jan', 'Feb', 'Dec']months.sort().reverse()
  • 数值数组排序
  • 由于sort方法是按照字符串的单元值排的,因此直接对数字进行排序不能达到我们的效果,比如说[1, 30, 4, 21, 100000].sort()返回的是[1, 100000, 21, 30, 4]。这时候可以给sort方法传一个compareFunction:

    sort((firstEl, secondEl) => { /* ... */ } )
    // 升序:[1, 4, 21, 30, 100000][1, 30, 4, 21, 100000].sort((firstEl, secondEl) => firstEl - secondEl)// 降序:[100000, 30, 21, 4, 1][1, 30, 4, 21, 100000].sort((firstEl, secondEl) => secondEl - firstEl)
  • 对象数组排序
  • 同样的对于对象数组,我们直接使用localeCompare比较元素的返回值。

    referenceStr.localeCompare(compareString)本身会返回一个数字,表示引用字符串是在比较字符串顺序之前、之后还是与给定字符串相同。如果是之前出现,则为负数;如果是之后,则为正;如果它们相等,则为 0。

    const arr = [{name: 'Jamf'}, {name: 'Bodine'}, {name: 'Prentice'}]// [{name: 'Bodine'}, {name: 'Jamf'}, {name: 'Prentice'}]arr.sort((a, b) => a.name.localeCompare(b.name))

    对于中文排序也同样适用

    // ['李四', '王五', '小二', '张山']['小二', '张山', '李四', '王五'].sort((a, b) => a.localeCompare(b))

    补充资料1:localeCompare使用方法
    补充资料2:数组的sort方法

    对数组中的元素排序首发于聚享小站,如果对您有帮助,不要忘记点赞支持一下呦🎉

    相关文章

    • 选择排序和冒泡排序

      规则:比较大小,位置交换 选择排序:数组中的每个元素都进行比较 冒泡排序:数组中相邻元素进行比较 选择排序 for...

    • 老生常谈问题之数组去重

      排序去重 思路: 先将原数组进行排序 检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,因为已经排序...

    • 4.测试算法的性能

      本例中测试选择排序的性能. 用选择排序对一数组进行排序,该数组为长度为10000,每个数组元素的大小是[0,100...

    • Java 数据结构

      冒泡排序,把数组里大小排序混乱的元素重新排序 插入排序,按元素大小从左往右排序 选择排序,依次在数组中找出最小的元...

    • 数组操作

      判断元素是否在数组中 获取数组最大值 数组排序

    • Leetcode.75.Sort Colors

      题目 给定一个数组, 数组元素只有0, 1, 2, 对元素进行排序. 思路1 直接快速排序或其他排序方式 时间复杂...

    • 从小到大,从大到小,PHP 数组排序

      数组排序:数组中的元素能够以字母或数字顺序进行升序或降序排序。 PHP - 数组的排序函数 sort() - 以升...

    • Java实例-数组

      1、Java 实例 – 数组排序及元素查找:使用sort()方法对Java数组进行排序,使用 binarySear...

    • 数组去重,两种比较好的方法。

      第一种 先将原数组进行排序 检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,因为已经排序,所以重复...

    • 9. 进阶算法之"搜索排序"

      简介 排序: 把某个乱序的数组变成升序或者降序的数组 搜索:找出数组中某个元素的下标 JS中的排序和搜索 JS中的...

    网友评论

      本文标题:对数组中的元素排序

      本文链接:https://www.haomeiwen.com/subject/qziplrtx.html