首页 前端知识 JS实现根据数组对象的某一属性排序,汉字排序

JS实现根据数组对象的某一属性排序,汉字排序

2024-08-19 22:08:15 前端知识 前端哥 35 45 我要收藏

JS实现根据数组对象的某一属性排序

    • 一、冒泡排序(先了解冒泡排序机制)
    • 二、根据数组对象的某一属性排序(引用sort方法排序)
    • 三、汉字排序

一、冒泡排序(先了解冒泡排序机制)

以从小到大排序为例,冒泡排序的原理就是通过两层循环把数组中两两相邻的元素进行比较,是的大的元素放到后边,元素交换位置,从而一步步的交换元素的位置,使得最大的元素放到数组的末尾,这样内部的循环就进行了一轮,再根据外部的循环依次再把次大一点的元素放到数组的末尾,从而实现数组的逐步排序。代码如下:

// 冒泡排序
var arr = [52,3,8,57,75,2,1];
for (var i = 0; i<arr.length; i++) {
    for (var j =0;j<arr.length-i; j++) {
        if(arr[j]>arr[j+1]){
            var temp = arr[j];
            arr[j]=arr[j+1];
            arr[j+1]=temp;
        }
    }
}
console.log(arr); //[1, 2, 3, 8, 52, 57, 75]

二、根据数组对象的某一属性排序(引用sort方法排序)

定义一个数组

var newArray = [{
  name: "aaa",
  value: 0
},
{
  name: "ddd",
  value: 3
},
{
  name: "bbb",
  value: 1
},
{
  name: "eee",
  value: 4
},
{
  name: "ccc",
  value: 2
}];


// 排序
function compare(property) {
  return function (a, b) {
    var value1 = a[property];
    var value2 = b[property];
    return value1 - value2;
  }
}
//打印看结果
console.log(newArray.sort(compare("value")))

//根据字符串排序,不能用 - ,字符串相减得到NAN,要用<,> 来
function compare(prop) {
    return function (a, b) {
      var value1 = a.props[prop].uiValues[0]
      var value2 = b.props[prop].uiValues[0]
      if(value1 > value2){
        return -1;
      }else if(value1 < value2){
        return 1;
      }else{
        return 0;
      }
    }
}

在这里插入图片描述在这里插入图片描述

三、汉字排序

<script type="application/javascript">

    var newArray = [
        {
            name: "小张",
            value: 0
        },
        {
            name: "李超",
            value: 3
        },
        {
            name: "小张",
            value: 1
        },
        {
            name: "强张",
            value: 4
        },
        {
            name: "李超",
            value: 2
        },
        {
            name: "小李",
            value: 2
        },
        {
            name: "小李",
            value: 2
        },
        {
            name: "李飞",
            value: 2
        },
        {
            name: "张强",
            value: 2
        }];

 
    function wenzistartSort(property) {

        return function (a, b) {

            var value1 = a[property];
            var value2 = b[property];

            return value1.localeCompare(value2)
        }
    }

    function wenzistartdSort(property) {

        return function (a, b) {

            var value1 = a[property];
            var value2 = b[property];

            return value2.localeCompare(value1)
        }
    }

    //打印看结果
   // console.log(newArray.sort(wenzistartSort("name")));
    console.log(newArray.sort(wenzistartdSort("name")));

</script>

倒序排列

在这里插入图片描述
正序排列
在这里插入图片描述

转载请注明出处或者链接地址:https://www.qianduange.cn//article/16174.html
标签
评论
发布的文章

php保存

2024-08-27 16:08:00

jQuery NiceScroll 插件

2024-08-27 09:08:49

vue echart4.0 按需引入

2024-08-27 09:08:28

Taro3 Vue3使用echarts

2024-08-27 09:08:49

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!