你还没有解释你想要的输出,所以这里是基于你的jsFiddle中的数据的逻辑猜测。
OK,这里有以简单易懂的形式从您的jsfiddle数据:
var obj = {saved: [
{"dict":"English","terms": [
{"term":"car","rowId":"3487","time":"1384773838069"},
{"term":"dog","rowId":"443","time":"1384776129957"},
{"term":"plane","rowId":"16171","time":"1384776168253"},
{"term":"bread","rowId":"127564","time":"1384959605196"}]
},
{"dict":"French","terms": [
{"term":"Monsieur","rowId":"934","time":"1384862250130"},
{"term":"Croissant","rowId":"13612","time":"1384900161187"},
{"term":"suis","rowId":"942","time":"1384900437068"}]
}
]
};
我假设你想每一个条款阵列在它的领域之一,分别排序。
这里是你如何可以通过现场对其进行排序:
// utility function for sorting an array by a key in alpha order
function sortArrayAlpha(arr, key) {
arr.sort(function(a, b) {
return a[key].localeCompare(b[key]);
});
}
// utility function for sorting an array by a key in parsed numeric order
function sortArrayNum(arr, key) {
arr.sort(function(a, b) {
return parseInt(a[key], 10) - parseInt(b[key], 10);
});
}
// sort by term
var dicts = obj.saved;
// cycle through each item in the saved array
for (var i = 0; i < dicts.length; i++) {
var terms = dicts[i].terms;
sortArrayAlpha(terms, "term");
}
// sort by time
// cycle through each item in the saved array
for (var i = 0; i < dicts.length; i++) {
var terms = dicts[i].terms;
sortArrayNum(terms, "time");
}
// sort by rowId
// cycle through each item in the saved array
for (var i = 0; i < dicts.length; i++) {
var terms = dicts[i].terms;
sortArrayNum(terms, "rowId");
}
而且,一个的jsfiddle显示输出:http://jsfiddle.net/jfriend00/vH8u7/。你可以在jsFiddle中看到每种排序的确切输出格式。
这里是什么样的长期的样子:
{"saved":[
{"dict":"English","terms":[
{"term":"bread","rowId":"127564","time":"1384959605196"},
{"term":"car","rowId":"3487","time":"1384773838069"},
{"term":"dog","rowId":"443","time":"1384776129957"},
{"term":"plane","rowId":"16171","time":"1384776168253"}]},
{"dict":"French","terms":[
{"term":"Croissant","rowId":"13612","time":"1384900161187"},
{"term":"Monsieur","rowId":"934","time":"1384862250130"},
{"term":"suis","rowId":"942","time":"1384900437068"}]
}
]}
而不是整个对象传递给'sortJsonArrayByProperty'的,独立通过每个'terms'阵列。只有最后一种方法,你必须将两个数组组合在一起。 –
请备份,而不是发布你找到并尝试过的一段代码,描述你实际想要解决的问题。告诉我们你的数据是什么样的,你想要什么样的排序输出。这是我们能够正确帮助您的唯一方式。而且,请在您的实际问题中发布该信息,而不是在jsFiddle中。在查看jsFiddle中的数据时,由于存在多个数组,因此尚不清楚您想要排序的数据。 – jfriend00
在小提琴中有一个obj的副本。 – Andy