使用jquery或javascript对多维数组进行Alphabetize

时间:2017-01-05 19:25:43

标签: javascript jquery arrays

如果我有一个数组:

myArray = [['0','Mouse'],['1','Dog'],['2','Cat'],['3','Gerbil']];

如何根据动物的数字对数组进行按字母顺序排列?

myArray = alpha(myArray);

结果:

myArray = [['2','Cat'],['1','Dog'],['3','Gerbil'],['0','Mouse']];

2 个答案:

答案 0 :(得分:2)

您可以使用sort功能



var myArray = [['0','Mouse'],['1','Dog'],['2','Cat'],['3','Gerbil']];
console.log(alpha(myArray));

var arr2 = [['5','Mouse'],['0','Mouse'],['1','Dog'],['2','Cat'],['3','G‌​erbil']];
console.log('another array', alpha(arr2));

function alpha(arr) {
  return arr.sort((a, b) => a[1] > b[1]);
}




答案 1 :(得分:1)

您可以使用Array#sort

  

sort() 方法对数组的元素进行排序并返回数组。排序不一定是stable。默认排序顺序是根据字符串Unicode代码点。

String#localeCompare

结合使用
  

localeCompare() 方法返回一个数字,指示引用字符串是在排序顺序之前还是之后或与给定字符串相同。

var array = [['5', 'Mouse'], ['0', 'Mouse'], ['1', 'Dog'], ['2', 'Cat'], ['3', 'Gerbil']];

array.sort(function (a, b) {
    return a[1].localeCompare(b[1]);
});

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }