发布
社区首页 >问答首页 >合并已排序的数组并删除重复的javascript

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

Stack Overflow用户
提问于 2015-07-15 02:19:53
回答 5查看 371关注 0票数 3

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

有什么想法吗?

代码语言:javascript
代码运行次数:0
复制
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;
}
EN

回答 5

Stack Overflow用户

发布于 2015-07-15 02:28:10

你可以试试这个

代码语言:javascript
代码运行次数:0
复制
var mergeArrays = function(arr1 , arr2){
    var mergedArray = arr1.concat(arr2);

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

Stack Overflow用户

发布于 2021-03-25 01:33:37

代码语言:javascript
代码运行次数:0
复制
function merge(...args) {
    return [...new Set(args.reduce((acc,val) => [...acc, ...val]))].sort();
} //Short and crisp solution to merge arrays, sort them and remove duplicates
票数 1
EN

Stack Overflow用户

发布于 2015-07-15 02:25:00

如果你对underscore.js是开放的,而且它很棒,那么你可以尝试像_.union这样的东西

http://underscorejs.org/#union

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31414347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档