sort和reverse方法在JavaScript中无法正常工作
sort and reverse method not working properly in JavaScript
我正在尝试这个:-
[231, 907, 1246, 1203, 1305, 484, 709, 1220, 616, 1200].sort();
输出是这样的:-
[1200, 1203, 1220, 1246, 1305, 231, 484, 616, 709, 907]
其中数组的类型我检查的第一个元素是数字。
知道为什么不起作用吗?
对等数字使用回调
function numSortDesc(a, b) {
return b - a;
}
var data = [231, 907, 1246, 1203, 1305, 484, 709, 1220, 616, 1200];
data.sort(numSortDesc);
document.write('<pre>' + JSON.stringify(data, 0, 4) + '</pre>');
从MDN来看,在Array
上排序的典型继承方法是:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
sort()方法对数组中的元素进行适当的排序并返回数组。排序不一定稳定。默认的排序顺序是根据字符串Unicode代码点
所以排序是正确的,并且您省略了比较器功能。添加一个比较器函数,根据您想要的进行排序(在这种情况下,任何数字升序或降序的匿名回调函数都可以,即:)
function(a, b) {
if (a == b) {
return 0;
}
return (a > b) ? 1 : -1; //Depending on your desired sort order
}
document.write([231, 907, 1246, 1203, 1305, 484, 709, 1220, 616, 1200].sort((a,b) => b-a));
b - a
将按降序排列阵列,a - b
按升序排列
来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作