所以我在javascript中有一个多维数组(不能使用php),并希望通过变量“filename”和“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();
我怎么能对它们进行排序?我需要在这些数组上使用数组吗?
感谢您的帮助!
答案 0 :(得分:1)
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 );