首页 > 其他分享 >JS实现根据数组对象的某一属性排序

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

时间:2023-08-08 09:02:32浏览次数:45  
标签:arr return value JS 数组 var 排序

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

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

// 冒泡排序
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方法排序)

1.定义一个数组

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

  

示例:

 

转自:

JS实现根据数组对象的某一属性排序_js根据数组对象中的一个值排序_这也备用的博客-CSDN博客

 

标签:arr,return,value,JS,数组,var,排序
From: https://www.cnblogs.com/wwssgg/p/17613250.html

相关文章

  • .net core 单文件发布,找不到appsettings.json的问题
    解决方案config.SetBasePath(GetBasePath());config.AddJsonFile("appsettings.json",false);privatestringGetBasePath(){usingvarprocessModule=Process.GetCurrentProcess().MainModule;returnPath.GetDirectoryName(processModule?.FileName......
  • 冒泡排序(简单概叙)
    #include<stdio.h>voidbubble_sort(inta[],intc){inte=0;for(e=0;e<c-1;e+=1){inth=0;intf=0;for(f=0;f<c-1-e;f+=1){if(a[f]>a[f+1])//如果换成变量e会怎么样?......
  • 软件测试|MySQL ORDER BY详解:排序查询的利器
    简介在数据库中,我们经常需要对查询结果进行排序,以便更好地展示数据或满足特定的业务需求。MySQL提供了ORDERBY子句,使我们能够轻松地对查询结果进行排序。本文将详细介绍MySQLORDERBY的用法和示例,帮助大家更好地理解和应用这一功能。基本语法在MySQL中,ORDERBY子句用于对查询结果......
  • Linux jq 命令讲解与实战操作(json字符串解析工具)
    目录一、概述二、jq命令安装三、jq命令语法与示例详解1)基本用法2)常用选项3)查询和过滤1、选择字段2、过滤3、遍历数组4、组合操作4)修改和创建1、修改字段值:2、创建新字段:3、组合操作:4、条件修改5)运算符1、数值运算2、比较运算:3、逻辑运算:4、条件运算:6)变量和条件1、使用变量:2、条......
  • 【JointJS】通过 Port 与图形进行连接
    Ports端口一个元素的一端和另一个元素的一端相连可以在Graph(逻辑层)中通过Link的target和source两个函数实现相连。从用户的角度出发,在Paper(视图层)中,用户通过鼠标移动从一个元素的一端拉一条线和另一个元素的一端相连,而这就需要借助端口(Ports)来实现。创建单个Port......
  • JavaScript - JsBarcode条形码
    <!DOCTYPEhtml><html><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jsbarcode/3.11.5/JsBarcode.all.min.js"><......
  • 【数据结构】排序1 基本概念
    0.概述:重难点:堆排序,快速排序,归并排序深入掌握各种排序算法,以选择题考察不同算法之间的对比常用排序算法的代码要会写,并且能根据给定序列选择最合适的排序算法1.排序的基本概念(简单了解即可)......
  • c#集合去重&排序常用方法
     list与数组转Hashset&SortedSet//创建hashset去重varhashSet=newHashSet<int>(){1,1,2,2};Console.WriteLine("HashSet:"+String.Join(",",hashSet));//HashSet:1,2//创建list包含重复元素varints=newList<int>{1,1,3,3,2,2};//创建数组转......
  • 拓扑排序
    拓扑序列是顶点活动网中将活动按照发生的先后顺序进行的一种排列。 拓扑排序,是对一个有向无环图(DirectedAcyclicGraph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满......
  • 对集合数组进行降序排列的方法
    在Dart中,你可以使用List的sort()方法对集合数组进行排序。要按降序排列,可以在排序方法中指定一个自定义的比较函数。以下是一种常见的降序排序方法:List<int>numbers=[3,1,4,2,5];numbers.sort((a,b)=>b.compareTo(a));print(numbers);//[5,4,3,2,1]在上述示例中,......