javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JavaScript数组嵌套对象

JavaScript中数组嵌套对象排序方法的示例详解

作者:还是大剑师兰特

在 JavaScript 中,可以使用 sort() 方法对包含嵌套对象的数组进行排序,本文将通过三个简单的示例为大家进行简单的介绍,需要的可以参考下

在 JavaScript 中,可以使用 sort() 方法对包含嵌套对象的数组进行排序。

sort() 方法可以接受一个比较函数作为参数来指定排序规则。该比较函数应该返回一个负数、零或正数,以指示要排序的两个元素的相对顺序。如果要对数组中的对象按照其属性进行排序,则可以在比较函数中访问这些属性并将它们进行比较。如果要对嵌套对象进行排序,则可以使用点表示法或方括号表示法访问嵌套对象的属性。

示例1

let arr = [
  { id: 1, name: 'John', age: 25 },
  { id: 2, name: 'Bob', age: 30 },
  { id: 3, name: 'Mary', age: 30 },
  { id: 4, name: 'Tom', age: 20 }
];

arr.sort(function(a, b) {
  if (a.age < b.age) {
    return -1;
  }
  if (a.age > b.age) {
    return 1;
  }
  
  // 年龄相同的情况下,按照 id 排序 
  if (a.id < b.id) {
    return -1;
  }
  if (a.id > b.id) {
    return 1;
  }

  return 0;
});

console.log(arr);

执行结果:

示例2

var arr = [
 {name:'大', age:5},
 {name:'剑', age:18},
 {name:'师', age:8},
];

// 排序方法
function compare(property) {//property:根据什么属性排序
 return function(a,b){
  var value1 = a[property];
  var value2 = b[property];
      // value2 - value1; ——> 降序
      // value1 - value2; ——> 升序
  return value1 - value2;//升序排序
 }
}

console.log(arr.sort(compare('age')))

执行结果:

示例3

js提供了字符串的对比方法**localeCompare()**,该方法返回的是一个数字用来表示一个参考字符串和对比字符串是排序在前,在后或者相同。该方法基本不单独使用,大部分时间是配合字符串排序使用的。

let arr = [
  { name: "张三", age: 20 },
  { name: "李四", age: 25 },
  { name: "王五", age: 22 }
];

// 按年龄升序排序
arr.sort((a, b) => a.age - b.age);
console.log(arr);
/*
[
  { name: "张三", age: 20 },
  { name: "王五", age: 22 },
  { name: "李四", age: 25 }
]
*/

// 按姓名升序排序
arr.sort((a, b) => a.name.localeCompare(b.name));
console.log(arr);
/*
[
  { name: "张三", age: 20 },
  { name: "李四", age: 25 },
  { name: "王五", age: 22 }
]
*/

什么是数组嵌套对象

数组嵌套对象是指一个数组中的元素是对象,这些对象可以包含多个属性或方法。

处理嵌套对象数组时,可以使用多种方法来访问和操作其中的数据。以下是一些常见的操作方法:

到此这篇关于JavaScript中数组嵌套对象排序方法的示例详解的文章就介绍到这了,更多相关JavaScript数组嵌套对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文