javascript - 检查对象值的任何部分是否包含在字符串中
问题描述
我有一个看起来像这样的字符串:
/link-to-page?foo=bar&test=1
另外我有一个看起来像这样的对象:
{
key: '/',
foo: 'bar',
test: false,
mock: 'data'
}
我想要实现的事情相当简单(我想),但也许我在这里错过了显而易见的事情:
我想检查我的对象的任何值是否包含在我的字符串中。
我的第一个想法是这样做:
Object.keys(obj).map(o => str.includes(obj[o]))
- 但这显然只会给我返回一个布尔数组。
尝试这个:Object.keys(obj).map(o => obj[o]).some(s => str.includes(s))
也不起作用,因为它可能会提供误报(在我的对象中,我有key
一个/
不应该考虑的值,但它会返回true
这里 - 如果那样的话,我只想搜索“实际文本”说得通)。
我应该先转换对象键和字符串以摆脱任何/
还是有其他方法?
谢谢!
解决方案
您可以使用替换方法摆脱任何 /
let oldstr = '/link-to-page?foo=bar&test=1';
let str = oldstr.replace('/', '');
console.log(str)
let obj = {
key: '/',
foo: 'asd',
test: false,
mock: 'data'
}
let a = Object.values(obj).some(s => str.includes(s))
console.log(a);
推荐阅读
- c++ - 如何使用 C++ 更新 QML 文本
- ruby - 我正在尝试使用 first.last 从多维数组中删除,但它返回 nil。(红宝石)
- xamarin.forms - 如何将条目拆分或设备为 Xamarin 表单中的小条目
- django - Django使用接收器或覆盖保存创建链接模型?
- javascript - 如何在 php laravel 的第二页上保留过滤器选项?
- python - 我设法使用正则表达式将逗号插入字符串,但需要一些帮助
- r - 对 R 中的 map 函数感到困惑
- javascript - 如何配置 Django URLS 以使用所有 react-router 路径
- java - 如何再次重新评估while循环条件
- centos - 我在 VM 上安装了 CentOS,但它不起作用