如何在 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 中连接两个不重复的字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章