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

 更新时间:2023年04月17日 10:11:14   作者:spring-java  
这篇文章主要介绍了js中如何对json数组进行排序的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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"}
     ]
     
 
/**数组根据数组对象中的某个属性值进行排序的方法 
  * 使用例子:newArray.sort(sortByArr(['matno'],true)) //表示根据matno属性降序排列;若第二个参数不传递,默认表示升序排序
  * @param attr 排序的属性 ['matno','salebillno'...],根据一个字段或者多个字段排序
  * @param rev true表示升序排列,false降序排序
  * */
 
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'}]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Bootstrap table使用方法记录

    Bootstrap table使用方法记录

    这篇文章主要为大家详细介绍了Bootstrap table的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Sea.JS知识总结

    Sea.JS知识总结

    SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架。本文给大家分享sea.js知识总结,感兴趣的朋友一起学习吧
    2016-05-05
  • 小程序实现点击动画效果

    小程序实现点击动画效果

    这篇文章主要为大家详细介绍了小程序实现点击动画效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • JS闭包原理与应用经典示例

    JS闭包原理与应用经典示例

    这篇文章主要介绍了JS闭包原理与应用,结合实例形式较为详细的分析了javascript闭包的原理、应用及相关操作注意事项,需要的朋友可以参考下
    2018-12-12
  • typescript使用 ?. ?? ??= 运算符的方法步骤

    typescript使用 ?. ?? ??= 运算符的方法步骤

    本文主要介绍了typescript使用 ?. ?? ??= 运算符的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • 保证JavaScript和Asp、Php等后端程序间传值编码统一

    保证JavaScript和Asp、Php等后端程序间传值编码统一

    在WEB开发过程中,前后端要求数据编码一致的处理是经常会碰到的!
    2009-04-04
  • js数组常用操作方法小结(增加,删除,合并,分割等)

    js数组常用操作方法小结(增加,删除,合并,分割等)

    这篇文章主要介绍了js数组常用操作方法,结合实例总结了javascript数组的增加、删除、合并、分割等操作技巧,需要的朋友可以参考下
    2016-08-08
  • js实现可输入可选择的select下拉框

    js实现可输入可选择的select下拉框

    这篇文章主要为大家详细介绍了js实现可输入可选择的select下拉框,可及时匹配包含输入的内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • uni-app使用微信小程序云函数的步骤示例

    uni-app使用微信小程序云函数的步骤示例

    这篇文章主要介绍了uni-app使用微信小程序云函数的步骤示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • layui prompt 设置允许空白提交的方法

    layui prompt 设置允许空白提交的方法

    今天小编就为大家分享一篇layui prompt 设置允许空白提交的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09

最新评论