我正在使用jquery从本地JSON文件中检索数据, 然后循环结果...
localjsonfile.json
{
"CGYacList": [
{
"Reg": "ZJ920",
"SqnMarks": 3,
"TailCode": "QO-A",
"Notes": "N/A"
},
{
"Reg": "ZJ936",
"SqnMarks": 7,
"TailCode": "QO-C",
"Notes": "N/A"
},
{
"Reg": "ZJ936",
"SqnMarks": 2,
"TailCode": "QO-C",
"Notes": "N/A"
},
{
"Reg": "ZJ936",
"SqnMarks": 92,
"TailCode": "QO-C",
"Notes": "N/A"
},
{
"Reg": "ZJ936",
"SqnMarks": 3,
"TailCode": "QO-C",
"Notes": "N/A"
}
]
}
JQUERY CODE
$(document).ready(function() {
$.ajax({
url: "localjsonfile.json",
dataType: "text",
success: function(data) {
var json = $.parseJSON(data);
for (var i = 0; i < json.CGYacList.length; i++) {
alert(json.CGYacList[i].SqnMarks);
}
我的问题是,
使用for (var i = 0; i < json.CGYacList.length; i++)
时,是否有一种简单的方法可以对结果进行排序,以便按ASC顺序显示.SqnMarks
?
干杯
答案 0 :(得分:0)
创建一个数组,插入数组并在for循环后对数组进行排序:
var sqnMarksArr=[];
for (var i = 0; i < json.CGYacList.length; i++) {
sqnMarksArr.push(json.CGYacList[i].SqnMarks);
}
sqnMarks.sort();
答案 1 :(得分:0)
这样就可以了。如果你想反向顺序翻转-1:1。
json.CGYacList.sort(function(a, b){
return a.SqnMarks > b.SqnMarks? 1 : -1;
});
答案 2 :(得分:0)
对于ASC订单:
json.CGYacList.sort(function(obj1,obj2){return obj1.SqnMarks>obj2.SqnMarks});
对于DSC订单:
json.CGYacList.sort(function(obj1,obj2){return obj1.SqnMarks<obj2.SqnMarks});
答案 3 :(得分:0)
只需选择自定义分拣机:
json.CGYacList.sort(function(a,b) {
return a.SqnMarks - b.SqnMarks; //reverse it for DSC order
});
答案 4 :(得分:0)
您可以使用javascript排序功能或任何其他Jquery排序插件
json.CGYacList.sort(function(a, b){
return a.SqnMarks>b.SqnMarks
}
这是一个基于任何元素
对数组进行排序的函数var sort_by = function(field, reverse, primer){
var key = primer ?
function(x) {return primer(x[field])} :
function(x) {return x[field]};
reverse = !reverse ? 1 : -1;
return function (a, b) {
return a = key(a), b = key(b), reverse * ((a > b) - (b > a));
}
}
信用转到“Triptych”