我有多个数字数组,其中值为-1的元素位于某些位置。必须按升序对数组进行排序,而不改变值为-1的元素的位置。
我无法在sort(function (a,b){})
中创建正确的比较函数。
以下数组的排序结果应该如下所示:
[-1,150,190,170,-1,-1,160,180] result [-1,150,160,170,-1,-1,180,190].
[-1,2,-1,8,-1,4]) result [-1,2,-1,4,-1,8].
[-1,-1,-1,-1,-1]) result [-1,-1,-1,-1,-1].
[4,2,9,11,2,16]) result [2,2,4,9,11,16].
这段代码
return x.sort(function (a,b) {
if (a==-1) return 0;
// if (b==-1) return 0;
if (a < b) return -1;
if (a > b) return 1;
return 0;
});
在第一个示例中,代码未正确运行,结果如下所示:
[-1,150,160,170,190,-1,-1,180]
。在第二个示例中完全无法运行。
排序
元素。 - undefined