javascript - 合并排序的数组并删除重复的javascript

标签 javascript

我想到这个是为了合并两个排序的数组并删除重复项。我想知道我是否可以做得更好。

有什么想法吗?

var mergeArrays = function(arr1 , arr2){
var mergedArray = new Array();
var i = 0, j=0,k=0;
var prev = -1;
while(arr1.length  > i || arr2.length > j){
    if(arr1[i] == arr2[j]){
        mergedArray[k] = arr1[i];
        i++;
        j++;
    }else if(arr1[i] < arr2[j] || arr2[j] == undefined){
        mergedArray[k] = arr1[i];
        i++;
    }else{
        if(arr2[j]>prev) {
            mergedArray[k] = arr2[j];
        }
        j++;
    }

    prev = mergedArray[k];
    k++;

}

return mergedArray;
}

最佳答案

你可以试试这个

var mergeArrays = function(arr1 , arr2){
    var mergedArray = arr1.concat(arr2);

    var uniqueArray = mergedArray.filter(function(elem, pos) {
        return mergedArray.indexOf(elem) == pos;
    });
    return uniqueArray;
} 

关于javascript - 合并排序的数组并删除重复的javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31414347/

相关文章:

Javascript:按文件路径比较两个选定的文件

javascript - 我可以在 ES6 的生产环境中使用 Babel Require Hook 吗?

javascript - 什么时候使用 .toString() 是安全的?

javascript - jQuery 从字符串中删除某些标签

计算时出现 Javascript 错误

javascript - 完成页面加载后开始预加载内容

javascript - 如何在此 JS 结构中仅向第一个 DIV 添加新类

javascript - grunt.js - 将 javascript 连接到函数调用中

javascript - 当一个简单的 For Loop 工作正常时,我的 forEach 方法有什么问题

javascript - 设置元素的ID