如何在 JavaScript 中连接两个不重复的字符串 [重复]

Posted

技术标签:

【中文标题】如何在 JavaScript 中连接两个不重复的字符串 [重复]【英文标题】:How to concatenate two strings without duplicates in JavaScript [duplicate] 【发布时间】:2019-01-16 17:36:51 【问题描述】:

我有两个字符串如下:

var str1 = "5YRS,AC,ALAR";
var str2 = "MON,5YRS,TRAU";

我想将这两个字符串合并为一个字符串并删除其中的重复项。 我尝试了以下方法:

var main_str = str1.concat(str2) //result: "5YRS,AC,ALARMON,5YRS,TRAU"

我得到的结果最终合并,如果我动态推送任何字符串,它不会显示所需的结果。是否有任何新的 ES6 实现来获得一个既检查空值检查又返回唯一字符串值的方法。

【问题讨论】:

一个字符串本身没有“重复”的概念——你必须先把字符串分解成单词。 【参考方案1】:

您可以将两个字符串与一个数组连接起来,然后拆分这些值以获得来自 Set 的唯一结果。

var str1 = "5YRS,AC,ALAR",
    str2 = "MON,5YRS,TRAU",
    joined = Array.from(new Set([str1, str2].join(',').split(','))).join(',');

console.log(joined);

【讨论】:

不错的答案,尽管我可能会将默认参数设为 join 显式(为了便于阅读) 正如我们之前看到的,问题很简单,这是重复的。改为关闭投票。 @Cerbrus,早上好。我在等你;-) 我不明白。你为什么还要回答这样的问题?为了简单的代表? @Cerbrus 这不是重复的。这是关于合并字符串,而不是数组【参考方案2】:

您可以使用 Set 来避免重复:

var str1 = "5YRS,AC,ALAR";
var str2 = "MON,5YRS,TRAU";
var res = [...new Set([...str1.split(','), ...str2.split(',')])].join(',');
console.log(res);

或者:

var str1 = "5YRS,AC,ALAR";
var str2 = "MON,5YRS,TRAU";
var res = [...new Set(str1.split(',').concat(str2.split(',')))].join(',');
console.log(res);

【讨论】:

以上是关于如何在 JavaScript 中连接两个不重复的字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中检查两个数字是不是相等[重复]

如何连接两个 XML 表并嵌套而不重复

如何在javascript中返回两个对象值[重复]

如何在没有任何重复行的情况下连接 cognos 中的两个表?

如何在javascript中检查变量类型[重复]

如何把word文档中相同的字设置相同的颜色并加下划