[英]Ramda, check(filter) if array of strings contains substring
例如我有一个数组:
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
和RegExp.prototype.test
的帮助下使用原生 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);
为了直接回答问题,
const data = [ 'abc', 'dfgx', 'dfgxabc', 'xyzz' ];
const findABC = filter(test(/abc/));
findABC(data)
使用 Ramda 是等效的。 看看REPL 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.