在javascript中处理字符串、数字或两者时应该使用什么排序算法?

在javascript中处理字符串、数字或两者时应该使用什么排序算法?,javascript,Javascript,我觉得这真的很有趣 当变量x=[1,50,2,4,2,2,88,9,10,22,40] 然后x.sort()将不正确排序 当var x=[“狗”、“苹果”、“斑马”、“牛”],x.sort() 将正确排序 在一次调用中对它们进行排序的合适函数是什么?您必须定义自定义排序,并将其作为回调传递给sort()。回调传递了两个参数 对于数字排序: x.sort(function(number1, number2) { return number1 - number2; }); 默认值将每个元素

我觉得这真的很有趣

当变量x=[1,50,2,4,2,2,88,9,10,22,40]

然后
x.sort()正确排序

var x=[“狗”、“苹果”、“斑马”、“牛”]
x.sort()
将正确排序


在一次调用中对它们进行排序的合适函数是什么?

您必须定义自定义排序,并将其作为回调传递给sort()。回调传递了两个参数

对于数字排序:

x.sort(function(number1, number2) {
    return number1 - number2;
});

默认值将每个元素转换为字符串,并按字典顺序进行排序

必须定义自定义排序并将其作为回调传递给sort()。回调传递了两个参数

对于数字排序:

x.sort(function(number1, number2) {
    return number1 - number2;
});

默认值将每个元素转换为字符串,并按字典顺序进行排序

您只需输入自己的排序方法,然后按自己喜欢的方式进行排序即可。您可以将它们视为字符串、数字或任何其他内容,也可以按升序或降序对它们进行排序。此外,还可以传入对象并根据特定成员对这些对象进行排序。默认情况下,泛型的
sort()
方法很少有用。

您只需传入自己的排序方法,然后按照自己的喜好对它们进行排序。您可以将它们视为字符串、数字或任何其他内容,也可以按升序或降序对它们进行排序。此外,还可以传入对象并根据特定成员对这些对象进行排序。一般的
sort()
方法在默认情况下很少有用。

根据,排序默认按字母顺序进行,这意味着
22
4
之前。实际上,文档中的内容要复杂得多,但基本上就是这样

如果要对它们进行数字排序,则需要提供自己的比较函数,例如:

x.sort(function(a,b){return a-b;});
如果
a
,函数只需返回一个负数;如果它们相等,则返回零;如果
a>b
,则返回一个正数。根据,排序默认按字母顺序进行,这意味着
22
位于
4
之前。实际上,文档中的内容要复杂得多,但基本上就是这样

如果要对它们进行数字排序,则需要提供自己的比较函数,例如:

x.sort(function(a,b){return a-b;});

如果
a
,函数只需返回负数;如果它们相等,则返回零;如果
a>b
,则返回正数。您可以将自定义排序逻辑作为回调方法传递“不会正确排序”-可能您对“正确”的定义错误:-)您可以将自定义排序逻辑作为回调方法传递“不会正确排序”-可能您对“正确”的定义是错误的:-)