是否可以在jQuery中对数组进行排序?

时间:2013-10-02 14:42:33

标签: arrays jquery

我在解析.csv文件并将其转换为jQuery数组之后!现在我想对列表进行排序,以便我可以按ID号(数组中的值)的顺序读取其值。 这是我的阵列:

$.ajax({
    url: "path/to/file.csv",
    success: function(data) {
        var array1 = data.split("\n");
        var array2 = new Array();
        for (var i = 0; i < array1.length; i++) {
            array2.push(array1[i].split(","));
            ...
        }

数组采用以下格式:

[0] = ID, TITLE, NUMBER
[1] = 1, Name1, 0        << ie: [1][0], [1][1], [1][2]
[2] = 2, Name2, 14
[3] = 3, Name3, 25
[4] = 4, Name4, 66
[5] = 5, Name5, 87
[6] =

为了忽略第一行(标题)和最后一行(空行),我使用:

if($.isNumeric(array2[i][0])){
    //do something
}
else {
    //do nothing
}

如果根据需要使用数据,则为其余部分。但是,有时文件不是有序的。我想首先选择ID为'1',ID为'2'的行,依此类推......

[0] = ID, TITLE, NUMBER
[1] = 5, Name5, 87        << ie: [1][0], [1][1], [1][2]
[2] = 2, Name2, 14
[3] = 4, Name4, 66
[4] = 3, Name3, 25
[5] = 1, Name1, 0
[6] =

有没有办法可以对数组列表进行排序?或者我是否需要阅读数据以查看每次都有什么? (即遍历列表以找出我的下一个ID所在的行)

4 个答案:

答案 0 :(得分:1)

jQuery具有排序功能

var myArray = [ 3, 4, 6, 1 ];

myArray.sort(); // 1, 3, 4, 6

您可以在此处查看更多示例

http://learn.jquery.com/javascript-101/arrays/

但我不能告诉你它是否在你发布的格式的数组中工作。这应该只是一个提示,而不是解决方案

答案 1 :(得分:1)

您是否看过内置的排序功能?您可以提供自定义比较器。

    var array = [[30, 'test'], [2, 'okay'], [4, 'yeah']];
    array.sort(function(a,b) {return a[0] - b[0]});

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

答案 2 :(得分:1)

您可以使用自定义排序......

array2.sort(function(a, b) {
    return a[2] - b[2];
});

答案 3 :(得分:0)

您可以使用.sort功能

array1.sort(function(a,b){
    return a[0] - b[0];
});

DEMO