json数组排序

//json数组

var menuData1=[

  {"orderid":-10,"text":"主页","title":"个人网站主页","url":"Default.aspx?TeacherID=153","visible":true,"target":"_self"},

  {"orderid":10,"text":"个人新闻","title":"个人新闻","url":"News.aspx?TeacherID=153","visible":true,"target":"_self"},

  {"orderid":5,"text":"发表论文","title":"发表论文","url":"Paper.aspx?TeacherID=153","visible":true,"target":"_self"},

  {"orderid":2,"text":"出版专著","title":"出版专著","url":"Monograph.aspx?TeacherID=153","visible":true,"target":"_self"},

  {"orderid":7,"text":"参与项目","title":"参与项目","url":"Project.aspx?TeacherID=153","visible":true,"target":"_self"},

  {"orderid":8,"text":"个人荣誉","title":"个人荣誉","url":"Prize.aspx?TeacherID=153","visible":true,"target":"_self"},

  {"orderid":1,"text":"发明专利","title":"发明专利","url":"Patent.aspx?TeacherID=153","visible":true,"target":"_self"},

  {"orderid":0,"text":"文件共享","title":"文件共享","url":"FileShare.aspx?TeacherID=153","visible":true,"target":"_self"}

  ];

//进行排序

   menuData1.sort(function(a, b) { return a.orderid > b.orderid ? 1 : -1;} );

 

//如果是对字符或汉字进行排序

menuData1.sort(function(a, b) { return a.localeCompare(b) })

转载于:https://www.cnblogs.com/zhouyu/archive/2013/04/02/zhouyu_jsonsort.html

### ES6 数组排序方法及其示例 在 JavaScript 中,`Array.prototype.sort()` 是用于对数组元素进行排序的主要方法。此方法可以接受一个比较函数作为参数来定义排序逻辑[^2]。以下是基于 ES6 的 JSON 数组排序的具体实现方式。 #### 使用 `sort()` 对 JSON 数组按属性排序 假设有一个 JSON 数组如下: ```javascript const jsonArray = [ { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }, { name: 'Charlie', age: 20 } ]; ``` ##### 按年龄升序排列 可以通过传递一个比较函数给 `sort()` 来实现按特定字段(如 `age`)排序: ```javascript jsonArray.sort((a, b) => a.age - b.age); console.log(jsonArray); // 输出: // [ // { name: 'Charlie', age: 20 }, // { name: 'Alice', age: 25 }, // { name: 'Bob', age: 30 } // ] ``` 上述代码通过减法运算符计算两个对象的 `age` 属性差值,从而决定它们的顺序。 ##### 按姓名字母降序排列 对于字符串类型的字段(如 `name`),可以使用 `localeCompare` 方法来进行大小写敏感或不敏感的排序: ```javascript jsonArray.sort((a, b) => b.name.localeCompare(a.name)); console.log(jsonArray); // 输出: // [ // { name: 'Charlie', age: 20 }, // { name: 'Bob', age: 30 }, // { name: 'Alice', age: 25 } // ] ``` 这里利用了 `localeCompare` 提供的语言环境支持功能。 #### 结合其他 ES6 特性优化排序过程 除了基本的 `sort()` 外,还可以与其他 ES6 新增特性一起工作以增强灵活性。例如,当需要筛选后再排序时,可以用链式调用的方式完成操作: ```javascript const filteredAndSorted = jsonArray .filter(item => item.age >= 25) // 过滤条件:仅保留年龄大于等于25岁的项 .sort((a, b) => a.age - b.age); // 按照年龄升序排序 console.log(filteredAndSorted); // 输出: // [ // { name: 'Alice', age: 25 }, // { name: 'Bob', age: 30 } // ] ``` 这种组合不仅提高了代码可读性和维护性,还充分利用了现代 JavaScript 的优势[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值