javascript - 两个字符串中字符的交集

标签 javascript lodash

我有一个包含字符串的对象。

filteredStrings = {search:'1234', select:'1245'}

我想回去

'124'

我知道我可以将它变成一个数组,然后遍历每个值并测试该值是否在另一个字符串内部,但我正在寻找一种更简单的方法来执行此操作。最好使用 Lodash。

我找到了 _.intersection(Array,Array) 但这只适用于数组。

https://lodash.com/docs#intersection

我希望能够在不必将对象转换为数组然后循环遍历每个值的情况下执行此操作,因为这可能会包含大量信息,我希望它尽快运行。

谢谢你的帮助。

最佳答案

将其中一个字符串 (search) 转换为 RegExp 字符集。在另一个字符串上使用带有 String#match 的 RegExp (select)。

注意:不像lodash的交集,结果字符不是唯一的,所以例如4可以出现两次。

var filteredStrings = {search:'1234', select:'124561234'}

var result = (filteredStrings.select.match(new RegExp('[' + filteredStrings.search + ']', 'g')) || []).join('');

console.log(result);

关于javascript - 两个字符串中字符的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41708035/

相关文章:

javascript - 如何在没有插件和 WordPress 的情况下创建共享社交媒体

javascript - lodash 中是否有比较两个对象数组,如果结果相同则不会显示

javascript - Lodash 从混合数组和对象中获取叶子

javascript - 如何获得不安全评估兼容的 Fabric js 和 lodash js

javascript - 将数组中的管道与 Angular Observable 组合起来

javascript - 如何使用 NodeJS 处理大量文本分隔文件

javascript - 当我想使用 _.lodash 将一个数组转换为另一个数组时,reduce 是使用 map 的替代方法吗?

javascript - lodash 模板中的返回函数值

javascript - 使用 JQuery 删除与特定类的最近链接

javascript - 如何使用 JavaScript 中的过滤器根据用户输入过滤整个数组?