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

标签 javascript arrays string filter 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 的帮助下使用原生 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/

相关文章:

c++ - 将 double 转换为字符数组 C++

php - 从 mysql 中的类别部分创建列表

java - 有没有更快的方法将 python numpy 传递到 JPype 中的 java 数组

swift - 将字符串中的重音字符替换为基本字符 - ą -> a , ć -> c

javascript - 是否可以从firebase云函数node.js更新firestore中的map类型字段?

javascript - 两个数组转一个多维数组 - Javascript

在 R 拆分问题中使用 rebus 的正则表达式?

javascript - 如何在 Javascript 命名空间脚本中创建函数数组

javascript - 使滚动条拇指看起来像圆形 CSS JavaScript

javascript - 动态输入字段不起作用