0

jquery中是否有一个函数可以对数组元素或json元素或类似的东西进行排序?

谢谢。

4

3 回答 3

1

您正在寻找 javascript 的.sort()方法。我知道您要求 jQuery 解决方案,但我认为这就是您要寻找的。

您可以调用.sort()任何数组。如果你给它传递一个函数,它将把它当作一个比较器函数。这意味着您可以根据需要对任何数组进行排序。

如果您想使用比较器函数对数字数组进行排序(升序),您可以这样做:

arrayVariable.sort(function(a,b) {
    return a-b;
});

它不需要只是数字。您以任何标准反对:

arrayVariable.sort(function(a,b) {
    /* assume a and b are both objects with a "key" property */
    return a.key - b-key;
});

这将按数组.key中对象的 s 对数组进行排序(升序)。

于 2013-06-17T00:14:20.033 回答
0

不,但是有一种内置在 JavaScript 中的方法:

my_array = [67,2,5,1,90,8];
my_array.sort(function(a,b){return a-b;})
// my_array now contains [1,2,5,8,67,90]

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

于 2013-06-16T23:59:38.997 回答
0

Javascript 已经有一个 Array.sort 方法。

var arr = ["red", "blue", "green"];
arr.sort(); // default sort is lexicographic.
// arr == ["blue", "green", "red"]

如果您需要更复杂的排序,则必须使用函数参数。

var arr = [101, 90, 200];
arr.sort();
// arr == [101, 200, 90] as the elements are treated as strings.
arr.sort(function(a, b){ return a - b;});
// arr == [90, 101, 200];
于 2013-06-17T00:00:08.350 回答