Javascript 如何为数组排序2种类型的值?

Javascript 如何为数组排序2种类型的值?,javascript,sorting,Javascript,Sorting,我正试着按字母顺序对这些项目进行排序。不过,我还想对项目类型进行排序 例如: 我想要 type sortValue blockItem a test1 blockItem a test2 blockItem b test3 imageItem a image imageItem b image imageItem c image imageItem s image textItem a text textItem b text textIte

我正试着按字母顺序对这些项目进行排序。不过,我还想对项目类型进行排序

例如:

我想要

  type     sortValue

blockItem   a test1
blockItem   a test2
blockItem   b test3
imageItem   a image
imageItem   b image
imageItem   c image
imageItem   s image
textItem    a text
textItem    b text
textItem    c text
我的代码会做这样的事情

  type     sortValue

blockItem   a test1
blockItem   a test2
imageItem   a image
textItem    a text
blockItem   b test3
imageItem   b image
textItem    b text
imageItem   c image
textItem    c text
imageItem   s image
我的排序函数

array contains type and sortvalue

array=array.sort(sortFunction);

function sortFunction(groupA, groupB) {

    if (groupA.sortValue > groupB.sortValue) {
        return 1;
    } else if (groupA.sortValue < groupB.sortValue) {
        return -1;
    }

    return 0;
}
数组包含类型和排序值
array=array.sort(sort函数);
函数排序函数(组A、组B){
if(groupA.sortValue>groupB.sortValue){
返回1;
}else if(组A.sortValue<组B.sortValue){
返回-1;
}
返回0;
}

它只对文本排序,而不对类型排序。我想知道是否有办法做到这一点。非常感谢

使用第二个键比较第一个键是否相等:

function sortFunction(a, b) {
    if (a.key1 > b.key1) {
        return +1;
    } else if (a.key1 < b.key1) {
        return -1;
    } else if (a.key2 > b.key2) {
        return +1;
    } else if (a.key2 < b.key2) {
        return -1;
    } else 
    ...
    } else if (a.keyN > b.keyN) {
        return +1;
    } else if (a.keyN < b.keyN) {
        return -1;
    } else {
       return 0;
    }   
}
函数排序函数(a,b){
如果(a.key1>b.key1){
返回+1;
}否则如果(a.key1b.key2){
返回+1;
}否则如果(a.key2b.keyN){
返回+1;
}否则如果(a.keyN
或者,为了更好的可读性:

function sortFunction(a, b) {
    if (a.key1 > b.key1) {
        return +1;
    } else if (a.key1 < b.key1) {
        return -1;
    }

    if (a.key2 > b.key2) {
        return +1;
    } else if (a.key2 < b.key2) {
        return -1;
    }
    ...

    if (a.keyN > b.keyN) {
        return +1;
    } else if (a.keyN < b.keyN) {
        return -1;
    }

    return 0;
}
函数排序函数(a,b){
如果(a.key1>b.key1){
返回+1;
}否则如果(a.key1b.key2){
返回+1;
}否则如果(a.key2b.keyN){
返回+1;
}否则如果(a.keyN
使用第二个键比较第一个键是否相等:

function sortFunction(a, b) {
    if (a.key1 > b.key1) {
        return +1;
    } else if (a.key1 < b.key1) {
        return -1;
    } else if (a.key2 > b.key2) {
        return +1;
    } else if (a.key2 < b.key2) {
        return -1;
    } else 
    ...
    } else if (a.keyN > b.keyN) {
        return +1;
    } else if (a.keyN < b.keyN) {
        return -1;
    } else {
       return 0;
    }   
}
函数排序函数(a,b){
如果(a.key1>b.key1){
返回+1;
}否则如果(a.key1b.key2){
返回+1;
}否则如果(a.key2b.keyN){
返回+1;
}否则如果(a.keyN
或者,为了更好的可读性:

function sortFunction(a, b) {
    if (a.key1 > b.key1) {
        return +1;
    } else if (a.key1 < b.key1) {
        return -1;
    }

    if (a.key2 > b.key2) {
        return +1;
    } else if (a.key2 < b.key2) {
        return -1;
    }
    ...

    if (a.keyN > b.keyN) {
        return +1;
    } else if (a.keyN < b.keyN) {
        return -1;
    }

    return 0;
}
函数排序函数(a,b){
如果(a.key1>b.key1){
返回+1;
}否则如果(a.key1b.key2){
返回+1;
}否则如果(a.key2b.keyN){
返回+1;
}否则如果(a.keyN
if(groupA.type==groupB.type){
/*你的代码*/
}
else if(groupA.type>groupB.type){
返回1;
}
else if(groupA.type
if(groupA.type==groupB.type){
/*你的代码*/
}
else if(groupA.type>groupB.type){
返回1;
}
else if(groupA.type
不错。顺便说一句,您可以将其缩短为
return(a.key1>b.key1)-(a.key1b.key2)-(a.key2b.keyN)-(a.keynb.keyN)不错。顺便说一句,您可以将其缩短为
return(a.key1>b.key1)-(a.key1b.key2)-(a.key2b.keyN)-(a.keynb.keyN)