试图从一个只包含整数的数组中获得最大值和最小值似乎比我想象的要难。
var numArray = [140000, 104, 99]; numArray = numArray.sort(); console.log(numArray)
我希望这是99 104 140000。相反,它显示的是104、14万、99。看起来排序是把值当做字符串处理的。
有没有办法让排序函数对整数值进行排序?
试图从一个只包含整数的数组中获得最大值和最小值似乎比我想象的要难。
var numArray = [140000, 104, 99]; numArray = numArray.sort(); console.log(numArray)
我希望这是99 104 140000。相反,它显示的是104、14万、99。看起来排序是把值当做字符串处理的。
有没有办法让排序函数对整数值进行排序?
当前回答
提升 Const移动= [200,450,- 400,3000,-650,- 130,70,1300];
如果返回值小于0,则A将在B之前 如果返回值是> 0,那么B会在A之前
movements.sort((a, b) => {
if (a > b) return 1; //- (Switch order)
if (a < b) return -1; //- (Keep order)
});
A -当前值,b -下一个值。
下行 运动。排序((a, b) => { If (a > b)返回-1;// - (Keep) 如果(a < b)返回1;// - (Switch) });
! 改进,最佳解决方案!
movements.sort ((a, b) => a - b); // Same result!
如果a < b是负数(开关) 如果a < b是负数(Keep)
其他回答
试试下面的代码:
HTML:
<div id="demo"></div>
JavaScript代码:
<script>
(function(){
var points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = points;
points.sort(function(a, b){return a-b});
document.getElementById("demo").innerHTML = points;
})();
</script>
提升 Const移动= [200,450,- 400,3000,-650,- 130,70,1300];
如果返回值小于0,则A将在B之前 如果返回值是> 0,那么B会在A之前
movements.sort((a, b) => {
if (a > b) return 1; //- (Switch order)
if (a < b) return -1; //- (Keep order)
});
A -当前值,b -下一个值。
下行 运动。排序((a, b) => { If (a > b)返回-1;// - (Keep) 如果(a < b)返回1;// - (Switch) });
! 改进,最佳解决方案!
movements.sort ((a, b) => a - b); // Same result!
如果a < b是负数(开关) 如果a < b是负数(Keep)
我同意aks,但是不用
return a - b;
你应该使用
return a > b ? 1 : a < b ? -1 : 0;
如果你需要从字符串列表中计算和排序最大的charCodeAt,这是正确的方法。
const arrayLines = '1.1.1.1\n1.0.1.1\n1.1.1.2\n1.1.1.0'.split('\n');
// Response: (4) ['1.0.1.1', '1.1.1.0', '1.1.1.1', '1.1.1.2']
arrayLines.sort((a, b) => {
let a_charCodeSize = 0,
b_charCodeSize = 0;
// Loop true a & b characters and calculate the charCodeAt size.
for (const aChar of a) a_charCodeSize += aChar.charCodeAt(0);
for (const bChar of b) b_charCodeSize += bChar.charCodeAt(0);
return a_charCodeSize - b_charCodeSize;
});
只需执行.sort((a, b) => a - b),而不是.sort()本身
var numArray = [140000, 104,99]; numArray。排序((a, b) => a - b); console.log (numArray)