尝试从一个我知道只包含整数的数组中获取最高和最低值似乎比我想象的更难。
var numArray = [140000, 104, 99];
numArray = numArray.sort();
console.log(numArray)
我希望它展示的是99, 104, 140000
,但实际上它展示的是104, 140000, 99
。因此看起来排序函数将这些值视为字符串。
有没有办法让排序函数按照整数值进行排序?
尝试从一个我知道只包含整数的数组中获取最高和最低值似乎比我想象的更难。
var numArray = [140000, 104, 99];
numArray = numArray.sort();
console.log(numArray)
我希望它展示的是99, 104, 140000
,但实际上它展示的是104, 140000, 99
。因此看起来排序函数将这些值视为字符串。
有没有办法让排序函数按照整数值进行排序?
let productPrices = [10.33, 2.55, 1.06, 5.77];
console.log(productPrices.sort((a,b)=>a-b));
并且会给你期望的结果。
升序
const movements = [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 - 下一个值。
降序
movements.sort((a, b) => { if (a > b) return -1; // - (保持) if (a < b) return 1; // - (交换) });
!改进,最佳解决方案!
movements.sort ((a, b) => a - b); // Same result!
如果 a < b,则为负数(切换) 如果 a < b,则为负数(保持)