例如我有一个数组:
let data = [ 'abc', 'dfgx', 'dfgxabc', 'xyzz' ]
并测试子字符串:
const searchStr = 'abc'
我需要另一个数组,其中包含 data
数组中的所有匹配值。
let result = ['abc', 'dfgxabc']
在我的任务中,我从键盘输入获取一个字符串,它可以包含至少 3 个字符或更多。所以它有点像实时搜索。
我正在尝试使用 Ramda:
const data = [ 'abc', 'dfg', 'xyz' ]
const searchStr = 'abc'
const filtered = R.filter(R.match(new RegExp(searchStr, 'i')), data)
最佳答案
您可以在 Array.prototype.filter
的帮助下使用原生 js 来完成此操作和 RegExp.prototype.test
const data = [ 'abc', 'dfgx', 'dfgxabc', 'xyzz' ];
const searchStr = 'abc';
const filtered = data.filter(s => new RegExp(searchStr, 'ig').test(s));
console.log(filtered);
关于javascript - Ramda,检查(过滤)字符串数组是否包含子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52075868/