Javascript控制台返回不正确的排序数组
Javascript Console returns incorrect sorted array
我在chrome控制台输入了以下代码。
var array = [25,7,8,41];
array.sort();
返回[25,41,7,8]
。这是怎么呢
sort()方法对数组中的元素进行排序。
排序顺序可以是字母顺序,也可以是数字顺序升序(向上)或降序(向下)
默认情况下,sort()方法将值按字符串排序按字母和升序排列
这适用于字符串("Apple"在"Banana"之前)。然而,如果数字按字符串排序,"25"比"100"大,因为"2"大于"1"
因此,sort()方法将产生不正确的结果排序数字时。
如果你想纠正这一点,你可以写一个比较函数作为传递给sort方法的第一个参数。参考资料中列出了一个!
编辑:在这里张贴以备将来使用…
var points = [40, 100, 1, 5, 25, 10];
function myFunction() {
points.sort(function(a, b){return a-b});
console.log(points);
}
参考默认情况下,sort方法按字母顺序对元素进行排序。要按数字排序,只需添加一个处理数字排序的新方法(sortNumber,如下所示)-
function sortNumber(a,b) {
return a - b;
}
var Array = [25 , 7 , 8 , 41];
Array.sort(sortNumber);
如何正确排序整数数组
javascript中的一切都是默认的对象,当你尝试排序时,它试图按字母顺序排序。你必须自己编写比较函数来对它们进行数值排序检查以下代码片段
var array = [25,7,8,41];
array.sort(sortCompare);
function sortCompare(a,b){
return a-b;
}
console.log(array);
Sort方法对数组中的项进行排序。Sort方法本身将项解释为字符串。因为"25"中的"2"比"7"中的"7"小,所以它返回25的索引在7之前。为了对数字按升序排序,user:
var array = [25,7,8,41];
array.sort(function(a, b){return a-b});
用MDN的数组对您所面临的问题的解决方案展开这里的其他答案。页面:
要比较数字而不是字符串,compare函数可以简单地从a中减去b。下面的函数将对数组进行升序排序(如果它不包含Infinity和NaN):
function compareNumbers(a, b) {
return a - b;
}
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在数组的 2/3 上调用自身的排序算法
- 数组值的排序以匹配另一个数组ES6
- 按不同项目对对象数组进行排序
- 根据Javascript中的字符串值对数组的数组进行排序
- 在不同的javascript数组中对json响应进行排序
- 对对象数组中的数组进行排序
- 按特定键对对象数组进行排序
- 使用jquery根据数组对表行进行排序
- 尝试对对象数组进行排序但拼接不是一个函数
- 对javascript中某些键的对象数组进行排序
- Javascript按数字顺序排序()数组
- Javascript排序索引链接数组
- 在jquery中对时间数组进行排序
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- Javascript中的多维数组排序索引问题
- 如何在mongodb中根据数组内容的差异进行排序
- 在Javascript中对具有特定异常的对象数组进行排序
- 数组数据排序类似mysql查询
- 在小于O(n)时间内找到(排序)数组中的重复元素