Array.prototype.reverse 反转数组的内容(带有变异)......
是否有一个类似的简单策略来反转数组而不改变原始数组的内容(没有变异)?
以下代码如何按数字顺序对此数组进行排序?
var array=[25, 8, 7, 41]
array.sort(function(a,b){
return a - b
})
Run Code Online (Sandbox Code Playgroud)
我知道如果计算结果是......
小于0:"a"被排序为低于"b"的索引.
零: "a"和"b"被认为是相等的,并且不执行排序.
大于0: "b"被排序为比"a"更低的索引.
在排序过程中多次调用数组排序回调函数?
如果是这样,我想知道每次将哪两个数字传递给函数.我假设它首先取"25"(a)和"8"(b),然后是"7"(a)和"41"(b),所以:
25(a) - 8(b)= 17(大于零,所以将"b"排序为低于"a"的索引):8,25
7(a) - 41(b)= -34(小于零,所以将"a"排序为比"b"更低的索引:7,41
那么这两组数字如何相互排序?
请帮助一个苦苦挣扎的新手!
例如:
var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){return a - b}) //Array now becomes [7, 8, 25, 41]
Run Code Online (Sandbox Code Playgroud)
代码怎么样?
function(a,b){
return a - b
}
Run Code Online (Sandbox Code Playgroud)
被解释为提升?它应该被分为三种情况,< 0,== 0,和> 0,但如何这有意义的时候a,并b可以是任何东西?
谢谢!
我知道.sort()方法按字母顺序对数组进行排序,就像它是一个字符串一样.即使你的阵列完全由数字组成.
我也明白,要以数字方式对数组进行排序,代码是:
myArray.sort(function (a,b) {
return a-b;
});
Run Code Online (Sandbox Code Playgroud)
问题是我不明白为什么这样做.我写的函数应该带两个参数,'a'和'b',但这些参数来自哪里?阵列?怎么知道这样做?然后,该函数返回一些数字.如果'a'和'b'分别是10和5,我的函数将返回'5'.现在我正在做myArray.sort(5); 这怎么可能在数字上神奇地整理我的整个数组???
谢谢您的帮助.
var arr = [5, 2, 1, -10, 8];
arr.sort(function(a, b) {
console.log(a,b)
return b - a;
}) ; // 8, 5, 2, 1, -10
Run Code Online (Sandbox Code Playgroud)
这个回调如何工作?
选择a和b的原则是什么?
请从内部解释这个特例.
输出console.log(首先,请解释此输出):
5 2
2 1
1 -10
-10 8
1 8
2 8
5 8
Run Code Online (Sandbox Code Playgroud)