Javascript 两个字符串中字符的交集
我有一个带字符串的对象Javascript 两个字符串中字符的交集,javascript,lodash,Javascript,Lodash,我有一个带字符串的对象 filteredStrings = {search:'1234', select:'1245'} 我想回去 '124' 我知道我可以将它转换成一个数组,然后循环遍历每个值并测试该值是否在另一个字符串中,但我正在寻找一种更简单的方法来实现这一点。最好是用Lodash 我找到了u.intersection(数组,数组),但这只适用于数组 我希望能够做到这一点,而不必将对象转换为数组,然后循环遍历每个值,因为这可能包含大量信息,我希望它能够尽快工作 谢谢您的帮助。将其中一
filteredStrings = {search:'1234', select:'1245'}
我想回去
'124'
我知道我可以将它转换成一个数组,然后循环遍历每个值并测试该值是否在另一个字符串中,但我正在寻找一种更简单的方法来实现这一点。最好是用Lodash
我找到了u.intersection(数组,数组),但这只适用于数组
我希望能够做到这一点,而不必将对象转换为数组,然后循环遍历每个值,因为这可能包含大量信息,我希望它能够尽快工作
谢谢您的帮助。将其中一个字符串(
search
)转换为RegExp字符集。在另一个字符串上使用带有的RegExp(选择
)
注意:与lodash的交集不同,结果字符不是唯一的,因此示例4可以出现两次
var filteredStrings={搜索:'1234',选择:'124561234'}
var result=(filteredStrings.select.match(新的RegExp('['+filteredStrings.search+']','g'))| |[])。连接('';
控制台日志(结果)现在我注意到上面提到的方法实际上也威胁/转换字符串到(as)数组?奇怪的是,我试图在网站上这样做,但对我来说没有效果。谢谢你的帮助。如果你把这个作为答案,我会把它标记为正确的,因为这就是我最后使用的。太棒了。我会尝试一下,让你知道它是怎么回事。我希望它们是独一无二的。对不起,我没提那件事。你能把它改回以前的样子吗?请注意,match()
在没有匹配项时返回null
。这意味着您不能只调用.join()
,如图所示。您必须首先验证您没有得到null
@AlexisWilke-确实如此。增加了一个后备方案。如果未找到匹配项,则结果将为空字符串。此外,请注意,当搜索包含]
,\
,^
,-
位于正确位置时,这可能会悄悄返回不正确的结果。