我正在尝试对一个包含字符串数组的数组进行排序。这类似于这个问题 (Sort an array with arrays in it by string),但我不确定如何实现它。我的数组如下所示:
var myArray = [
['blala', 'alfred', '...'],
['jfkdj', 'berta', '...'],
['vkvkv', 'zimmermann', '...'],
['cdefe', 'albert', '...'],
];
我正在尝试按名称或内部数组的第二个参数进行字母排序(不区分大小写)。之后,如果有两个元素具有相同的第二个参数,则要按第一个参数进行排序。我尝试使用以下方法,但未成功,并且不太理解原因。能否有人提供建议:
function Comparator(a,b){
if (a[1] < b[1]) return -1;
if (a[1] > b[1]) return 1;
return 0;
}
var myArray = [
['blala', 'alfred', '...'],
['jfkdj', 'berta', '...'],
['vkvkv', 'zimmermann', '...'],
['cdefe', 'albert', '...'],
];
myArray = myArray.sort(Comparator);
我应该怎样才能以第二个参数为基准对第一个参数进行排序?
function Comparator(a,b){
if (a[1] < b[1]){
if (a[2] < b[2]) return -1
if (a[2] > b[2]) return 1;
}
return -1;
}
if (a[1] > b[1]) return 1;{
if (a[2] < b[2]) return -1
if (a[2] > b[2]) return 1;
}
return 1;
}
return 0;
}
var myArray = [
['blala', 'alfred', '...'],
['jfkdj', 'berta', '...'],
['vkvkv', 'zimmermann', '...'],
['cdefe', 'albert', '...'],
];
myArray = myArray.sort(Comparator);
)
-- 试试这个if(a[1] < b[1]) return -1;
- Austin Greco