文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

js中如何对json数组进行排序

2023-05-16 12:06

关注

js对json数组进行排序

废话不多说,直接上代码

// 升序排列
function up(a, b) {
     return a.val-b.val
 },
 // 降序排列
function down(a, b) {
    return b.val-a.val
},

// sort 会直接对原数据排序
testJson.sort(up)

例如:

let test=[{"val":100},{"val":70},{"val":50},{"val":20},{"val":10}]
test=test.sort(up)

js根据json数组多个字段排序

let newArray = [
      {product: "1", matno: "420200011480006",salebillno:"xsdd2733-8", sales: "800"},
      {product: "2", matno: "420200011480007",salebillno:"xsdd2733-2", sales: "300"},
      {product: "3", matno: "420200011480006",salebillno:"xsdd2733-5", sales: "100"},
      {product: "4", matno: "420200011480006",salebillno:"xsdd2733-3", sales: "200"},
      {product: "5", matno: "420200011480008",salebillno:"xsdd2738", sales: "600"},
      {product: "6", matno: "420200011480010",salebillno:"xsdd2734", sales: "400"},
      {product: "7", matno: "420200011480009",salebillno:"xsdd2735", sales: "700"},
      {product: "8", matno: "420200011480001",salebillno:"xsdd2737", sales: "500"}
     ]
     
 

 
function sortByArr(arr, rev) {
 if (rev == undefined) {
 rev = 1;
 } else {
 rev = (rev) ? 1 : -1;
 }
 return function(a, b) {
 for (var i = 0; i < arr.length; i++) {
 let attr = arr[i]
 if (a[attr] != b[attr]) {
 if (a[attr] > b[attr]) {
 return rev * 1;
 } else {
 return rev * -1;
 }
 }
 }
}
}

 newArray.sort(sortByArr(['matno','salebillno'],true))
[{product: '8', matno: '420200011480001', salebillno: 'xsdd2737', sales: '500'}
 {product: '4', matno: '420200011480006', salebillno: 'xsdd2733-3', sales: '200'}
 {product: '3', matno: '420200011480006', salebillno: 'xsdd2733-5', sales: '100'}
 {product: '1', matno: '420200011480006', salebillno: 'xsdd2733-8', sales: '800'}
 {product: '2', matno: '420200011480007', salebillno: 'xsdd2733-2', sales: '300'}
 {product: '5', matno: '420200011480008', salebillno: 'xsdd2738', sales: '600'}
 {product: '7', matno: '420200011480009', salebillno: 'xsdd2735', sales: '700'}
 {product: '6', matno: '420200011480010', salebillno: 'xsdd2734', sales: '400'}]

newArray.sort(sortByArr(['matno'],false))
// 输出
[{product: '6', matno: '420200011480010', salebillno: 'xsdd2734', sales: '400'}
 {product: '7', matno: '420200011480009', salebillno: 'xsdd2735', sales: '700'}
 {product: '5', matno: '420200011480008', salebillno: 'xsdd2738', sales: '600'}
 {product: '2', matno: '420200011480007', salebillno: 'xsdd2733-2', sales: '300'}
 {product: '1', matno: '420200011480006', salebillno: 'xsdd2733-8', sales: '800'}
 {product: '3', matno: '420200011480006', salebillno: 'xsdd2733-5', sales: '100'}
 {product: '4', matno: '420200011480006', salebillno: 'xsdd2733-3', sales: '200'}
 {product: '8', matno: '420200011480001', salebillno: 'xsdd2737', sales: '500'}]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯