[英]How to check presence of a URL parameter compared to an Array?
给定这两个示例网址和代码。 如何使用数组作为参考来检查值是否在 UTM 参数中? (在任何给定时间只有一个 utm 参数)。 例如.com?utm=test
例如.com?utm=test2
var partnerArray = ["test", 'test2'];
function findPartner() {
if window.location.href.indexOf('?utm='(partnerArray)' !== -1) {
//do something fun here
}
我知道我的代码是错误的 - 我还没有找到使用数组检查 URL 中的值的示例。
谢谢你。
让我们把它分成两个问题。 首先,获取utm
参数的值:
function getUTM() {
return new URLSearchParams(window.location.search).get("utm");
}
然后,弄清楚它是否是已知的合作伙伴之一,并返回可能的合作伙伴。
const partnerArray = ["test", 'test2'];
function getPartner() {
const utm = getUTM();
return partnerArray.find(partner => partner === utm);
}
如果查询字符串的utm
参数与任一已知伙伴都不匹配, getPartner()
将返回undefined
。
感谢所有提供意见的人。 这是我为未来读者提供的解决方案,其中包含评论中的部分内容。
1st:建立一个数组:
var partnerArray1 = ["test1", 'test2'];
var partnerArray2 = ["test3", 'test4'];
第二:检查 URL 的 UTM 参数值中的内容
var urlParams = new URLSearchParams(window.location.search).get("utm");
第三:制作一个 function 来检查数组的值:
function checkUTM() {
if (partnerArray1.indexOf(urlParams) !== -1){
//do some cool stuff here
}
if (partnerArray2.indexOf(urlParams) !== -1){
//do some more cool stuff here
}
}
没有弄清楚如何将值传递到 function 并检查它,我采用了稍微混乱的方式,但它实现了我的目标。 如果对上述内容有改进,请随时提供清晰的更新示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.