如何对数字的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数组进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用jquery或javascript对对象数组进行排序[重复]