js中怎么对json数组进行排序

前端开发   发布日期:2025年02月26日   浏览次数:266

今天小编给大家分享一下js中怎么对json数组进行排序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

js对json数组进行排序

废话不多说,直接上代码

  1. // 升序排列
  2. function up(a, b) {
  3. return a.val-b.val
  4. },
  5. // 降序排列
  6. function down(a, b) {
  7. return b.val-a.val
  8. },
  9. // sort 会直接对原数据排序
  10. testJson.sort(up)

例如:

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

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

  1. let newArray = [
  2. {product: "1", matno: "420200011480006",salebillno:"xsdd2733-8", sales: "800"},
  3. {product: "2", matno: "420200011480007",salebillno:"xsdd2733-2", sales: "300"},
  4. {product: "3", matno: "420200011480006",salebillno:"xsdd2733-5", sales: "100"},
  5. {product: "4", matno: "420200011480006",salebillno:"xsdd2733-3", sales: "200"},
  6. {product: "5", matno: "420200011480008",salebillno:"xsdd2738", sales: "600"},
  7. {product: "6", matno: "420200011480010",salebillno:"xsdd2734", sales: "400"},
  8. {product: "7", matno: "420200011480009",salebillno:"xsdd2735", sales: "700"},
  9. {product: "8", matno: "420200011480001",salebillno:"xsdd2737", sales: "500"}
  10. ]
  11. /**数组根据数组对象中的某个属性值进行排序的方法
  12. * 使用例子:newArray.sort(sortByArr(['matno'],true)) //表示根据matno属性降序排列;若第二个参数不传递,默认表示升序排序
  13. * @param attr 排序的属性 ['matno','salebillno'...],根据一个字段或者多个字段排序
  14. * @param rev true表示升序排列,false降序排序
  15. * */
  16. function sortByArr(arr, rev) {
  17. if (rev == undefined) {
  18. rev = 1;
  19. } else {
  20. rev = (rev) ? 1 : -1;
  21. }
  22. return function(a, b) {
  23. for (var i = 0; i < arr.length; i++) {
  24. let attr = arr[i]
  25. if (a[attr] != b[attr]) {
  26. if (a[attr] > b[attr]) {
  27. return rev * 1;
  28. } else {
  29. return rev * -1;
  30. }
  31. }
  32. }
  33. }
  34. }
  35. /**升序**/
  36. newArray.sort(sortByArr(['matno','salebillno'],true))
  37. [{product: '8', matno: '420200011480001', salebillno: 'xsdd2737', sales: '500'}
  38. {product: '4', matno: '420200011480006', salebillno: 'xsdd2733-3', sales: '200'}
  39. {product: '3', matno: '420200011480006', salebillno: 'xsdd2733-5', sales: '100'}
  40. {product: '1', matno: '420200011480006', salebillno: 'xsdd2733-8', sales: '800'}
  41. {product: '2', matno: '420200011480007', salebillno: 'xsdd2733-2', sales: '300'}
  42. {product: '5', matno: '420200011480008', salebillno: 'xsdd2738', sales: '600'}
  43. {product: '7', matno: '420200011480009', salebillno: 'xsdd2735', sales: '700'}
  44. {product: '6', matno: '420200011480010', salebillno: 'xsdd2734', sales: '400'}]
  45. /**降序**/
  46. newArray.sort(sortByArr(['matno'],false))
  47. // 输出
  48. [{product: '6', matno: '420200011480010', salebillno: 'xsdd2734', sales: '400'}
  49. {product: '7', matno: '420200011480009', salebillno: 'xsdd2735', sales: '700'}
  50. {product: '5', matno: '420200011480008', salebillno: 'xsdd2738', sales: '600'}
  51. {product: '2', matno: '420200011480007', salebillno: 'xsdd2733-2', sales: '300'}
  52. {product: '1', matno: '420200011480006', salebillno: 'xsdd2733-8', sales: '800'}
  53. {product: '3', matno: '420200011480006', salebillno: 'xsdd2733-5', sales: '100'}
  54. {product: '4', matno: '420200011480006', salebillno: 'xsdd2733-3', sales: '200'}
  55. {product: '8', matno: '420200011480001', salebillno: 'xsdd2737', sales: '500'}]

以上就是js中怎么对json数组进行排序的详细内容,更多关于js中怎么对json数组进行排序的资料请关注九品源码其它相关文章!