Javascript 检查字符串是否匹配
我有一个数据集,每个对象都有一个Javascript 检查字符串是否匹配,javascript,if-statement,constants,reduce,Javascript,If Statement,Constants,Reduce,我有一个数据集,每个对象都有一个promoUrl和一个promoNumber,结构如下: const phoneNumbers = [ { promoUrl: '/interior-doors/', promoNumber: '589-918-0710', }, { promoUrl: '/promo4/', promoNumber: '307-789-8615', }, ]; 在第一次加载时,将设置一个cookie,其中包含参考url(下面代码
promoUrl
和一个promoNumber
,结构如下:
const phoneNumbers = [
{
promoUrl: '/interior-doors/',
promoNumber: '589-918-0710',
},
{
promoUrl: '/promo4/',
promoNumber: '307-789-8615',
},
];
在第一次加载时,将设置一个cookie,其中包含参考
url(下面代码中的const
参考
),并将参考url传递给reduce
函数,允许我查找url,找到关联的电话号码,然后动态显示该号码
const url = referrer;
const promoNumber = promoResults.reduce((promoNumber: string, results: any) => {
const hasPromo = url === results.promoUrl;
if (hasPromo) {
return results.promoNumber;
}
return promoNumber;
}, '');
但是现在,当它找到URL时,只有当cookie值与promoUrl
完全匹配时,它才会与数字匹配。一旦这是活的,我将不负责设置promoURL,这项任务将交给非开发人员。我如何设置它,使其在字符串包含匹配字符的情况下工作,也就是说,如果促销URL
是interior doors
或/interior doors
,它将工作,而不需要/interior doors/
?只要字符串包含匹配字符,真的有什么问题吗
我已尝试使用.includes()
编辑我的hasPromo
const
:
const hasPromo=url.includes(results.promoUrl)代码>
但是它对我仍然不起作用。你有没有记录你的url和结果。promoUrl
建议是记录两个键(url和promoUrl)的类型和值。在罗伯特·哈维(Robert Harvey)的评论中进行了一些挖掘和帮助后,找到了这一点
我所需要做的就是修改hasPromo
const
来检查结果
const hasPromo=results.promoUrl.includes(url)代码>
这完全符合我的需要。这是否回答了您的问题?不幸的是,没有,似乎在用const hasPromo=url.includes(results.promoUrl)修改我的hasPromo
const
除非url完全匹配,否则代码>仍然无法工作。将我的问题修改为包含此信息。请尝试IndexOf()
。我链接的帖子的第一个答案就说明了这一点。不幸的是,这似乎仍然不起作用。只有当URL
完全匹配时,它才会起作用。算了吧!添加相应的答案!