这段代码中如何将push和Shift一起使用?

时间:2019-05-03 11:15:01

标签: javascript syntax

我正在查看合并排序代码,但我不明白我们如何一起推动和转移,如果那不是正在发生的事情,那么有人可以告诉我

 result.push(node1[0] < node2[0]? node1.shift() : node2.shift());
function mergeSort (arr) {
    if (arr.length < 2) {
      return arr;
    }

    var mid = Math.floor(arr.length / 2);
    var subLeft = mergeSort(arr.slice(0, mid));
    var subRight = mergeSort(arr.slice(mid));

    return merge(subLeft, subRight);
}

function merge (node1, node2) {
    var result = [];
    while (node1.length > 0 && node2.length > 0)
        result.push(node1[0] < node2[0]? node1.shift() : node2.shift());
    return result.concat(node1.length? node1 : node2);
}
``

1 个答案:

答案 0 :(得分:1)

shift()方法从数组中删除第一个元素,并返回该删除的元素。此方法更改数组的长度。

var array1 = [1, 2, 3];
var firstElement = array1.shift();

console.log(array1);
// expected output: Array [2, 3]

console.log(firstElement);
// expected output: 1

Source