javascript排序多维数组

javascript sort multidimensional array

本文关键字:数组 排序 javascript      更新时间:2023-12-23

所以我在javascript中有一个多维数组(不能使用php),并希望按变量"filename"answers"size"对其进行排序。我从另一个网站获得了数组(通过xml获得动态数据)。我的var是这样的(从许多其他代码中提取,询问你是否需要其他代码):

    var id = new Array();
var filename = new Array();
var url = new Array();
var size = new Array();
var creationDate = new Array();
var mimetype = new Array();
var thumbnailAvailable = new Array();

我该如何分类?我需要在这些数组上加一个数组吗?

谢谢你的帮助!

var id = [ 'bId', 'aId', 'cId', 'eId', 'dId', 'cId' ];
var filename = [ 'b', 'a', 'c', 'e', 'd', 'c' ];
var url = [ 'aa', 'bb', 'ccx', 'ee', 'dd', 'ccy' ];
var size = [ 1, 1, 2, 1, 1, 1 ];
var creationDate = [ 0, 1, 2, 3, 4, 5 ];
var mimetype = [ 'x', 'y', 'x', 'y', 'x', 'x' ];
var thumbnailAvailable = [ false, false, false, false, true, false ];
var fileData = [];
for ( var i = 0; i < id.length; ++i )
{
    fileData.push( {
                    id: id[i],
                    filename: filename[i],
                    url: url[i],
                    size: size[i],
                    creationDate: creationDate[i],
                    mimetype: mimetype[i],
                    thumbnailAvailable: thumbnailAvailable[i]
                   } );
}
fileData.sort( function(a,b){
    if ( a.filename < b.filename )
        return -1;
    if ( a.filename > b.filename )
        return 1;
    return a.size - b.size;
} );
for (var i = 0; i < fileData.length; ++i )
    alert( fileData[i].filename + " - " + fileData[i].size );

JSFiddle