如何使javascript中的排序函数的行为类似于mysql order by
我正在尝试对多维数组进行排序。 我应该在javascript.sort()函数的回调上添加什么,使其行为类似于mysql order by 例如。 使用mysql order by,结果:如何使javascript中的排序函数的行为类似于mysql order by,javascript,mysql,sorting,Javascript,Mysql,Sorting,我正在尝试对多维数组进行排序。 我应该在javascript.sort()函数的回调上添加什么,使其行为类似于mysql order by 例如。 使用mysql order by,结果: acx, acx abx, acx acx, S&P/ASX 20 在js中使用排序函数,结果: S&P/ASX 20, acx, acx abx, acx acx 谢谢。问题是JS中的排序区分大小写。为了解决这个问题,提供一个函数作为参数,它应该比较字符串的大小写版本(或大小写版本)
acx,
acx abx,
acx acx,
S&P/ASX 20
在js中使用排序函数,结果:
S&P/ASX 20,
acx,
acx abx,
acx acx
谢谢。问题是JS中的排序区分大小写。为了解决这个问题,提供一个函数作为参数,它应该比较字符串的大小写版本(或大小写版本)
function cmp(x, y) {
return x > y ? 1 : x < y ? -1 : 0;
}
a = ["S&P/ASX 20","acx", "acx abx","acx acx"]
a.sort(function(x, y) {
return cmp(x.toUpperCase(), y.toUpperCase())
})
函数cmp(x,y){
返回x>y?1:x
不清楚您的多维度是什么,但您的示例看起来只是在不区分大小写的情况下进行了排序
在任何情况下,要获得自定义行为,您要做的是将一个函数传递给比较元素,返回-1、1或0。例如:
yourArray.sort(function(a, b) {
a = a.toLowerCase();
b = b.toLowerCase();
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
});
yourray.sort(函数(a,b){
a=a.toLowerCase();
b=b.toLowerCase();
if(ab){
返回1;
}
返回0;
});
如果要比较数组的数组,在比较函数中,可以比较
a
和b
中给出的两个数组中的各种条目,搜索[javascript]字符串排序大小写
。非常感谢。我没有发现问题只是js区分大小写。愚蠢的我。@user2020835:没问题)顺便说一句,mysql中的排序可能是任意一种,这取决于您使用的排序规则。