javascript排序多维数组

javascript排序多维数组,javascript,arrays,sorting,multidimensional-array,Javascript,Arrays,Sorting,Multidimensional Array,因此,我在javascript中有一个多维数组(不能使用php),并希望按变量“filename”和“size”对其进行排序。我从另一个网站(通过xml动态数据)获得了数组。 我的var如下所示(摘自许多其他代码,询问您是否需要其他代码): 我怎样才能把它们分类?我需要在这些数组上加一个数组吗 谢谢你的帮助 var id=['bId','aId','cId','eId','dId','cId']; var id = [ 'bId', 'aId', 'cId', 'eId', 'dId', 'cI

因此,我在javascript中有一个多维数组(不能使用php),并希望按变量“filename”和“size”对其进行排序。我从另一个网站(通过xml动态数据)获得了数组。 我的var如下所示(摘自许多其他代码,询问您是否需要其他代码):

我怎样才能把它们分类?我需要在这些数组上加一个数组吗

谢谢你的帮助

var id=['bId','aId','cId','eId','dId','cId'];
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 );
var filename=['b','a','c','e','d','c']; 变量url=['aa','bb','ccx','ee','dd','ccy']; 变量大小=[1,1,2,1,1,1]; var creationDate=[0,1,2,3,4,5]; var mimetype=['x','y','x','y','y','x','x']; var thumbnailAvailable=[false,false,false,false,true,false]; var fileData=[]; 对于(变量i=0;ib.filename) 返回1; 返回a.size-b.size; } ); 对于(变量i=0;i

好吧,你所拥有的并不是一个“多维数组”。这是一个由七个独立数组组成的列表。您想按索引合并它们,并按
大小
文件名
值排序吗?当您使用php提取xml时,没有理由不能在那里排序,并作为jsonok输出。我应该把变量放在一个数组中吗?正如我写的那样,它从高到低排序,但是如果你不想这样,这很容易纠正——只需将-1改为1,反之亦然,然后返回a.size-b.size。不过,它确实很好——这在我看来是正确的。你根据什么标准决定它不起作用?
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 );