如何在JavaScript中对数组进行排序

Ani*_*ish 5 javascript sorting jquery

我没有使用关联数组.我正在使用像这样的1d数组,

array("1,a","5,b","2,c","8,d","6,f");
Run Code Online (Sandbox Code Playgroud)

我该如何排序这个数组?

结果应该是,

array("1,a","2,c","5,b","6,f","8,d");
Run Code Online (Sandbox Code Playgroud)

nnn*_*nnn 1

我将继续假设您想首先按数字部分排序,按数字排序,然后对逗号后面的位进行辅助字典(字符串)排序。这样,像“11,a”这样的值将在“2,a”之后结束 - 如果您只是执行默认排序,“11,a”将在“2,a”之前结束。所以:

var a = ["1,a","11,a","8,a","24,z","5,b","2,c","8,d","6,f"];

a.sort(function(a,b) {
   var aparts = a.split(","),
       bparts = b.split(","),
       anum = +aparts[0], // convert first part to number
       bnum = +bparts[0],
       aletter = aparts[1],
       bletter = bparts[1];

   if (anum === bnum)
      return aletter < bletter ? -1 : aletter === bletter ? 0 : -1;
   else
      return anum - bnum;
});
Run Code Online (Sandbox Code Playgroud)

结果:

["1,a", "2,c", "5,b", "6,f", "8,a", "8,d", "11,a", "24,z"]
Run Code Online (Sandbox Code Playgroud)