推送后Javascript排序不起作用?

前端之家收集整理的这篇文章主要介绍了推送后Javascript排序不起作用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在这里做错了什么:在IE9和FF中也有相同的结果.
function TestArrayOperationsClick()
{
  function sortNums(a,b)
  {
    return a - b;
  }
  var array = [6,4,2,8];
  console.log("Array 1: " + array); 
  array.sort(sortNums);
  console.log("Sort 1: " + array);
  array.push([1,5,10]);
  console.log("Array 2: " + array);
  array.sort(sortNums);
  console.log("Sort 2: " + array);
}

输出

LOG: Array 1: 6,8 

LOG: Sort 1: 2,6,8 

LOG: Array 2: 2,8,1,10 

LOG: Sort 2: 2,10 <- not sorted.

解决方法

对于 array.push(...),您应该传递单个参数,而不是数组:
array.push(1,10);

最终输出将是:

Sort 2: 1,10

否则,推送的结果实际上是这样的:

[2,[1,10]]

虽然在执行console.log时没有清楚地显示.

编辑:正如乔纳森所提到的,如果你想要追加一系列物品,.concat()就是你要走的路.

猜你在找的JavaScript相关文章