JavaScript升序排序出现异常
JavaScript Ascending Number Sort With an Exception
我在JavaScript中定义了以下数组,
var myPriceList = [0, 0, 0, 1, 5, 3]
我需要按升序对数字进行排序,这样0就会显示在排序的末尾,就像这样-
var myPriceList = [1, 3, 5, 0, 0, 0]
我知道我可以写一个像下面这样的自定义函数,但我不知道如何合并"0"的异常。
function sortNumber(a,b)
{
return b - a;
}
function numSort(a,b){
if(a == 0)
return 1;
if(b == 0)
return -1;
return a - b;
}
如果numSort(a,b)
返回值>0
,则a
的索引应该更高(因此在序列中更晚)。如果值是<0
,则b
应该在序列中的后面。0
表示二者在项或次序上相等。
JSFiddle演示。另请参见MDN排序参考。
试试这个:
var a = [0, 0, 0, 1, 5, 3];
a.sort();
while(a[0] == 0) a.push(a.shift());
// a is now [1, 3, 5, 0, 0, 0]
var arr = [0, 0, 0, 1, 5, 3];
arr.sort(function(a,b){return a*b==0? 1:a-b});
/*返回值:(数组)1,3,5,0,0*/
function sortNumber(a,b)
{
if(a == 0) return 1;
if(b == 0) return -1;
return b - a;
}
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过引用var Using DataTables来进行分页或排序
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- AngularJs对所有页面中的所有记录进行排序
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 按从高到低对多个int变量进行排序
- jQuery UI可排序-多连接列表拖动
- Javascript排序字符串或数字
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- sort而不是排序javascript
- 通过从节点父级获取所有子级对节点进行排序(获取子级数组)
- 在Javascript中对具有特定异常的对象数组进行排序
- SSJ - 不可排序的异常
- jquery可排序ui异常
- JavaScript升序排序出现异常
- JavaScript:排序异常
- 在$.getJSON异常之后对JSON数组进行排序