排序Json和从当前位置获取上下数据

Sort Json and Get Up down data from Current Postion

本文关键字:位置 获取 上下 数据 Json 排序      更新时间:2023-09-26

我想对json对象进行排序,然后从当前位置获得等级上下。

我有以下json对象。

[
  {
    "Grade": "1+"
  },
  {
    "Grade": "1"
  },
  {
    "Grade": "1-"
  },
  {
    "Grade": "10"
  },
  {
    "Grade": "11"
  },
  {
    "Grade": "12"
  },
  {
    "Grade": "2+"
  },
  {
    "Grade": "2"
  },
  {
    "Grade": "2-"
  },
  {
    "Grade": "3+"
  },
  {
    "Grade": "3"
  },
  {
    "Grade": "3-"
  }
]
示例01:

假设我当前的位置是1+
  • 如果我点击down word按钮,然后1 minus,得到结果1
  • 如果我再次点击down word按钮,然后点击1 minus并获得结果1-
  • 如果我再次点击down word按钮,然后点击1 minus并获得结果2+
  • 如果我点击up word按钮,然后1 minus,得到结果1-

我试着

var arr = [];
for(var jj in RatingGrade)
arr.push([jj, RatingGrade [jj]]);
console.log(RatingGrade);
var start = "1+";
var counter = 0;//work on up down button by increase and decrease
if( counter < 0 ){
  $('#gen_override_gradename').text(arr[i - (counter)].GradeNo);
  $('#pd_GradeName').text(arr[i - (counter)].GradeName);
  $('#gen_avg_pd').text(arr[i - (counter)].AveragePD);
     } else {
          if(counter == 0){
            $('#gen_override_gradename').text($('#rating_grade').text());
                               $('#pd_GradeName').text($('#base_pd_score').text());
                     } else {
                         $('#gen_override_gradename').text(arr[i - (1 + (counter))].GradeNo);
                         $('#pd_GradeName').text(arr[i - (1 + (counter))].GradeName);
                         $('#gen_avg_pd').text(arr[i - (1 + (counter))].AveragePD);
                     }
                }

下面的代码片段将对json进行排序:

json.sort(function (a, b) {
    return = a.id - b.id;
});

然而,+-符号需要用额外的逻辑处理,因为你通过包括符号来消除"整数值"。现在它是一个字符串,当你试图将它与1进行比较时,1+不保留任何值。基本上,解析出符号并在排序完成后将它们扔回。