简体   繁体   中英

Sort multidimensional array in JavaScript

I need to sort an array containing arrays in ascending numerical order. The data structure looks like this

array = [[escalation],//integer
         [name],
         [email],
         [blackberry]];

I try to sort the array using this function (sorting by escalation)

function sortfcn(a,b){
 if(a[0]<b[0]){
    return -1;
 }
 else if(a[0]>b[0]){
    return 1;
 }
 else{
    return 0;
 }
}

But my output still looks incorrect...

0 0 10 12 14 16 18 20 20 8

Any advice on how to fix this?

From the sort output you provided, it looks like JavaScript is reading the array elements as strings. See if parseInt works:

function sortfcn(a,b){
 if(parseInt(a[0])<parseInt(b[0])){
    return -1;
 }
 else if(parseInt(a[0])>parseInt(b[0])){
    return 1;
 }
 else{
    return 0;
 }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM