Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两个字符串中字符的交集_Javascript_Lodash - Fatal编程技术网

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'))| |[])。连接('';

控制台日志(结果)match()
在没有匹配项时返回
null
。这意味着您不能只调用
.join()
,如图所示。您必须首先验证您没有得到
null
@AlexisWilke-确实如此。增加了一个后备方案。如果未找到匹配项,则结果将为空字符串。此外,请注意,当
搜索
包含
]
\
^
-
位于正确位置时,这可能会悄悄返回不正确的结果。