5 回答

TA貢獻2003條經(jīng)驗 獲得超2個贊
您可以使用替換方法擺脫任何 /
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);

TA貢獻1906條經(jīng)驗 獲得超3個贊
您可以使用正則表達式來避免匹配字符
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)

TA貢獻1898條經(jīng)驗 獲得超8個贊
單線
let isinclude=(str,obj)=>(str=str.replace('/',''),Object.keys(obj).reduce((a,v)=>a || str.includes(v),false))

TA貢獻1911條經(jīng)驗 獲得超7個贊
您可以存儲有用的屬性,然后循環(huán)遍歷它們以檢查對象內(nèi)部并防止過濾:
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;
}
}

TA貢獻1872條經(jīng)驗 獲得超4個贊
遍歷您的對象值并使用.match方法來檢查這些值是否包含在給定的字符串中。如果過濾后的數(shù)組的長度是,則>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")
}
添加回答
舉報