从当前位置排序Json和Get Up down数据

时间:2015-08-04 20:57:44

标签: javascript jquery arrays json sorting

我希望对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);
                     }

                }

但它的工作正常。

1 个答案:

答案 0 :(得分:0)

以下代码段将对您的json进行排序:

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

但是,+-符号需要使用其他逻辑来处理,因为您通过包含符号来排除“整数值”。现在它是一个字符串,当你试图将它与1比较时,它不会保留任何值。基本上,解析符号并在排序完成后将它们重新输入。