javascript合并/排序 fatal error

标签 javascript algorithm sorting merge mergesort

我正在编写合并排序算法,在合并辅助函数中,我有以下比较语句:

    function merge(a,b){
        var result = [];
            while(a.length && b.length){
                    result.push(a[0] < b[0] ? a.shift() : b.shift()); // you can't just grab a[0] or b[0] 
        //as it results in a fatal error.
                }
return, etc.
}

为什么当我输入 a[0] 而不是 'a.shift()' 时,会导致 fatal error ?是因为您正在使用条件子句中的内容做某事吗?

最佳答案

查看 shift 的文档.它删除第一个元素。因此,如果您只访问 a[0] 并且不删除它,那么 while 循环将永远不会退出。

关于javascript合并/排序 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31362821/

相关文章:

javascript - 这个 jQuery 函数是什么意思?

javascript - 在 ui-dialog-buttonpane 中添加搜索按钮和文本框

所有对的Java算法

git ls-files 按修改时间排序

javascript - 带有数组的 Javascript 中的 HTML 表格排序有效,但为什么呢?

javascript - 如何在索引不连续的数组中同时按索引删除多个元素?

javascript - Javascript 中的 Qunit 测试

python - 为什么寻路机器人的这些动态规划解决方案中的一个比另一个更快?

algorithm - 来自 Google Code Jam(2014)资格赛的扫雷高手

python - 将字典转换为值列表,按键排序