-
湖上湖
您可以使用替换方法摆脱任何 /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);
-
一只名叫tom的猫
您可以使用正则表达式来避免匹配字符str="/link-to-page?foo=bar&test=1"ob={ key: '/', foo: '/', test: false, mock: '/'}path=/[a-zA-Z]/res=Object.values(ob).some(o=>path.test(o)?str.includes(o):false)console.log(res)
-
汪汪一只猫
单线let isinclude=(str,obj)=>(str=str.replace('/',''),Object.keys(obj).reduce((a,v)=>a || str.includes(v),false))
-
Smart猫小萌
您可以存储有用的属性,然后循环遍历它们以检查对象内部并防止过滤:const data = '/link-to-page?foo=bar&test=1';const relevantProperties = ['foo', 'test', 'mock'];const obj = { key: '/', foo: 'bar', test: false, mock: 'data'};for (let i = 0; i < relevantProperties.length; ++i) { const property = relevantProperties[i]; if (data.includes(obj[property])) { console.log(property); break; }}
-
守着一只汪
遍历您的对象值并使用.match方法来检查这些值是否包含在给定的字符串中。如果过滤后的数组的长度是,则>0意味着找到了匹配项let obj = { key: '/', foo: 'bar', test: false, mock: 'data'}let str = '/link-to-page?foo=bar&test=1'let matchedValues = Object.values(obj).filter(x=>str.match(x)) // will return an array of all matching values// -> (2) ["/", "bar"]if(matchedValues.length > 0){ console.log("Matches found")}else{ console.log("Matches found")}