1

我在解析 .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

4 回答 4

1

jQuery有排序功能

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

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

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

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

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

于 2013-10-02T14:45:40.343 回答
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

于 2013-10-02T14:51:47.173 回答
1

您可以使用自定义排序,例如...

array2.sort(function(a, b) {
    return a[2] - b[2];
});
于 2013-10-02T14:52:30.730 回答
0

你可以使用.sort 功能

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

演示

于 2013-10-02T14:50:22.420 回答