例如,我有一个数组:
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)
答案 0 :(得分:0)
您可以在Array.prototype.filter
和RegExp.prototype.test
的帮助下使用本机js完成此操作
const data = [ 'abc', 'dfgx', 'dfgxabc', 'xyzz' ];
const searchStr = 'abc';
const filtered = data.filter(s => new RegExp(searchStr, 'ig').test(s));
console.log(filtered);
答案 1 :(得分:0)
为了直接回答问题,
const data = [ 'abc', 'dfgx', 'dfgxabc', 'xyzz' ];
const findABC = filter(test(/abc/));
findABC(data)
与使用Ramda等效。看看REPL。