【发布时间】:2019-07-30 05:12:28
【问题描述】:
在标记这个重复之前,请知道我在这里尝试了所有可能的答案。
我试过这些,
var jsonObjSeat = jQuery.parseJSON(seatJson);
//jsonObjSeat.sort(function (a, b) {
// return a.seats.number.localeCompare(b.seats.number);
//});
function sortByKey(array, key) {
return array.sort(function(a, b) {
var x = a[key]; var y = b[key];
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
}
people = sortByKey(jsonObjSeat, 'seats.number');
我需要 1A,1C..2A,2C ..etc
在这里拉小提琴, https://jsfiddle.net/h9548dLc/8/
【问题讨论】:
-
也添加你的json
-
在上面添加了小提琴,如果你错过了,这里jsfiddle.net/h9548dLc/8
-
@sajanyamaha,
number对象的number字段是一个字符串。在字符串中,"10"的值小于"2"。 -
ok @Rai 也许我可以拆分并将其转换为数字然后排序,但是字母排序呢?
-
@sajanyamaha,我对 javascript 伙伴的经验并不是很丰富。但从逻辑上讲,您可能可以这样做:使用
sort()两次。 (i)*应用拆分后,根据数字部分排序。 *(ii)*使用 *(i) 中获得的列表并应用基于字母的排序。我不知道字母数字排序是否有任何直接功能,但我觉得这可能是暂时的,直到知道更好的人给出有价值的答案。
标签: jquery arrays json sorting