在这行代码中,它连接两个数组并将每个值乘以2:
[[3,2,1],[6,5,4]].reduce(function(p,c,i,a) {
return p.concat(c)
}).map(function(v) {
return v * 2
}).sort()
我希望对最终输出进行排序,但事实并非如此。结果是:
[10, 12, 2, 4, 6, 8]
如果我把它排序在前面,它会重新排序:
[[3,2,1],[6,5,4]].reduce(function(p,c,i,a) {
return p.concat(c)
}).sort().map(function(v) {
return v * 2
})
结果:
[2, 4, 6, 8, 10, 12]
这里发生了什么?这不是一个重复的问题,如下所述。并且引用的重复也是错误的。 .sort确实会对数字进行排序:
[10,12,2,4,6,8].sort() = [2,4,6,8,10,12]