我有一个对象数组MyArrayOfItems,Item其对象看起来像这样:
Item
{
ContainerID: i, // int
ContainerName: 'SomeName', // string
ItemID: j, // int
ItemName: 'SomeOtherName' // string
}
Run Code Online (Sandbox Code Playgroud)
我想对这个数组进行排序,以便按顺序排序ContainerID,然后按ItemName字母顺序排序.
我有一个自定义排序功能,到目前为止看起来像这样:
function CustomSort(a, b) {
Item1 = a['ContainerID'];
Item2 = b['ContainerID'];
return Item1 - Item2;
}
MyArrayOfItems.sort(CustomSort);
Run Code Online (Sandbox Code Playgroud)
这是按ContainerID排序的,但我如何按ItemName排序?
谢谢.
使用String.localeCompare函数.而当使用它ContainerID的a和b相等.
function CustomSort(a, b) {
var Item1 = a['ContainerID'];
var Item2 = b['ContainerID'];
if(Item1 != Item2){
return (Item1 - Item2);
}
else{
return (a.ItemName.localeCompare(b.ItemName));
}
}
Run Code Online (Sandbox Code Playgroud)
要调整排序顺序,您始终可以放在-任何return表达式前面.
function CustomSort(a, b) {
Item1 = a['ContainerID'];
Item2 = b['ContainerID'];
if(Item1 - Item2 !=0){
return Item1 - Item2;
}
else{
if (a.ItemName < b.ItemName)
return -1;
if (a.ItemName > b.ItemName)
return 1;
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3862 次 |
| 最近记录: |