繁体   English   中英

Ramda,检查(过滤)字符串数组是否包含子字符串

[英]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.filterRegExp.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM