如何对数字的javascript数组进行排序[重复]

Posted

技术标签:

【中文标题】如何对数字的javascript数组进行排序[重复]【英文标题】:How to sort a javascript array of numbers [duplicate] 【发布时间】:2012-03-15 09:05:59 【问题描述】:

我需要在 javascript 中对数组进行排序..

有人怎么做??

默认情况下,排序方法不适用于数字...

我的意思是:

a = [1, 23, 100, 3]
a.sort()

a 值是:

[1, 100, 23, 3]

谢谢:)

【问题讨论】:

a.sort(function(a,b)return a-b;) Here's a link 到一些文档。你应该习惯于自己做研究。它只会帮助你。 【参考方案1】:

通常对我有用:

a.sort(function(a,b) 
  return a - b;
);

【讨论】:

简明扼要地使用简单的数学和>1 = 1 && <-1 = -1 :)【参考方案2】:

所以如果你写排序函数,它就会起作用。

[1, 23, 100, 3].sort(function(a, b)
    if (a > b)
        return 1;
    if (a < b)
        return -1;
    return 0
);

【讨论】:

注意,比较函数可以返回它喜欢的任何值——只有符号很重要。所以整个函数可以简化为return a - b; 你是对的。这是一个通用的解决方案。【参考方案3】:
<script type="text/javascript">

function sortNumber(a,b)

return a - b;


var n = ["10", "5", "40", "25", "100", "1"];
document.write(n.sort(sortNumber));

</script> 

【讨论】:

【参考方案4】:

您可以将比较器函数传递给sort

> a.sort(function(a, b)  return a < b ? -1 : a > b ? 1 : 0; );
  [1, 3, 23, 100]

【讨论】:

【参考方案5】:

使用custom sort function。

a = [1, 23, 100, 3];
a.sort(function(a,b) return a-b; );

【讨论】:

【参考方案6】:

这里是一个 Javascript 数组升序排序的解决方案

function bubblesort(array)

    var done = false;
    while(!done)
        done = true;
        for(var i = 1; i< array.length; i++)
            if(array[i -1] > array[i])
                done = false;
                var tmp = array[i-1];
                array[i-1] = array[i];
                array[i] = tmp;
            
        
    
    return array;

var numbers = [2, 11, 1, 20, 5, 35];
bubblesort(numbers);

【讨论】:

以上是关于如何对数字的javascript数组进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

按字母数字对javascript数组进行排序[重复]

在Javascript中对地址数组进行排序[重复]

如何使用jquery或javascript对对象数组进行排序[重复]

基于对象属性对数组进行排序 - Javascript [重复]

按字符串内的数字对数组进行排序[重复]

数组列表排序[重复]