繁体   English   中英

与数组相比,如何检查 URL 参数是否存在?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM