当前位置: 首页 > news >正文

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

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;}}
}

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

http://www.lryc.cn/news/303443.html

相关文章:

  • CSP-J 2023 复赛第2题:公路 ← 贪心算法
  • 【LeetCode打卡】Day23|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • Transformer位置表示(Position Encoding)
  • LPDDR6与LPDDR5 State Diagram技术探讨
  • AliLinux的使用Docker初始化服务(详细)
  • docker环境常用容器安装
  • 【论文阅读|基于 YOLO 的红外小目标检测的逆向范例】
  • 【presto权威指南】常用操作
  • Python程序员面试准备:八股文题目与解答思路
  • 如何系统地自学Python?
  • mysql 2-21
  • 【C#】List泛型数据集如何循环移动,最后一位移动到第一位,以此类推
  • LeetCode23.合并K个升序链表
  • (01)Hive的相关概念——架构、数据存储、读写文件机制
  • 二维码扫码登录原理,其实比你想的要简单的多
  • Java 实现 Awaitable(多线程并行等待,类似 AutoEventReset 的作用)
  • AI之Sora:Sora(文本指令生成视频的里程碑模型)的简介(能力/安全性/技术细节)、使用方法、案例应用之详细攻略
  • IListManger feeds流
  • 视频推拉流EasyDSS视频直播点播平台授权出现激活码无效并报错400是什么原因?
  • 设计模式三:工厂模式
  • 2024.2.15 模拟实现 RabbitMQ —— 消息持久化
  • 【技巧】金融企业在搭建服务器时,选择私有云方案还是全栈专属云?
  • 【大厂AI课学习笔记】【2.2机器学习开发任务实例】(10)模型评测
  • 【C++游戏开发-03】贪吃蛇
  • 如何理解CSS的边框宽度?
  • java 写入写出 zip
  • 问题解决:‘telnet‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  • 从基础到高级:Linux用户与用户组权限设置详解
  • 【感知机】感知机(perceptron)学习算法知识点汇总
  • 蓝桥杯:C++二分算法