我有一个包含字符串的对象。
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/