猿问

如何使用jQuery或javascript对象数组进行排序

如何使用jQuery或javascript对象数组进行排序

我有一组对象:

var array = [(id, name, value),(id, name, value)]; //and so on

如何使数组按atDistribute名称的升序排序?(array[i][1])?

我试过这样做:array[i][1].sort()但这行不通。

请帮帮我!

编辑:数组可以包含两个以上的对象!它可以容纳数百人。

编辑:为什么这个问题在“重复”问题提出两年之前就被提出,却被标记为重复问题?


侃侃尔雅
浏览 1385回答 3
3回答

至尊宝的传说

//This&nbsp;will&nbsp;sort&nbsp;your&nbsp;array function&nbsp;SortByName(a,&nbsp;b){ &nbsp;&nbsp;var&nbsp;aName&nbsp;=&nbsp;a.name.toLowerCase(); &nbsp;&nbsp;var&nbsp;bName&nbsp;=&nbsp;b.name.toLowerCase();&nbsp; &nbsp;&nbsp;return&nbsp;((aName&nbsp;<&nbsp;bName)&nbsp;?&nbsp;-1&nbsp;:&nbsp;((aName&nbsp;>&nbsp;bName)&nbsp;?&nbsp;1&nbsp;:&nbsp;0));}array.sort(SortByName);

明月笑刀无情

var&nbsp;array&nbsp;=&nbsp;[[1,&nbsp;"grape",&nbsp;42],&nbsp;[2,&nbsp;"fruit",&nbsp;9]];array.sort(function(a,&nbsp;b){ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;a&nbsp;and&nbsp;b&nbsp;will&nbsp;here&nbsp;be&nbsp;two&nbsp;objects&nbsp;from&nbsp;the&nbsp;array &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;thus&nbsp;a[1]&nbsp;and&nbsp;b[1]&nbsp;will&nbsp;equal&nbsp;the&nbsp;names &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;if&nbsp;they&nbsp;are&nbsp;equal,&nbsp;return&nbsp;0&nbsp;(no&nbsp;sorting) &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a[1]&nbsp;==&nbsp;b[1])&nbsp;{&nbsp;return&nbsp;0;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a[1]&nbsp;>&nbsp;b[1]) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;if&nbsp;a&nbsp;should&nbsp;come&nbsp;after&nbsp;b,&nbsp;return&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;if&nbsp;b&nbsp;should&nbsp;come&nbsp;after&nbsp;a,&nbsp;return&nbsp;-1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1; &nbsp;&nbsp;&nbsp;&nbsp;}});这个sort函数有一个附加的参数,一个带有两个参数的函数。此函数应返回-1,&nbsp;0或1取决于两个参数中的哪一个在排序中应该放在第一位。更多信息.我还修正了多维数组中的语法错误。

蓝山帝景

//objects var&nbsp;array&nbsp;=&nbsp;[{id:'12',&nbsp;name:'Smith',&nbsp;value:1},{id:'13',&nbsp;name:'Jones',&nbsp;value:2}];array.sort(function(a,&nbsp;b){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a1=&nbsp;a.name.toLower(),&nbsp;b1=&nbsp;b.name.toLower(); &nbsp;&nbsp;&nbsp;&nbsp;if(a1==&nbsp;b1)&nbsp;return&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a1>&nbsp;b1?&nbsp;1:&nbsp;-1;});//arraysvar&nbsp;array&nbsp;=[&nbsp;['12',&nbsp;,'Smith',1],['13',&nbsp;'Jones',2]];array.sort(function(a,&nbsp;b){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a1=&nbsp;a[1],&nbsp;b1=&nbsp;b[1]; &nbsp;&nbsp;&nbsp;&nbsp;if(a1==&nbsp;b1)&nbsp;return&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a1>&nbsp;b1?&nbsp;1:&nbsp;-1;});
随时随地看视频慕课网APP
我要回答