Jquery - inArray - 比较后检查值是否存在

问题描述 投票:1回答:1

inArray会检查确切的值是否存在?

来自网址,得到linkTrim = offer3for2

来自cookie split,offerSplit = ?url1=/offers/offer3for2

需要比较和检查offer3for2文本是否存在于linkTrimofferSplit中。

路径:

https://www.test.com/content/test/en/offers/offer3for2.html

cookie - offerParameter

%3Furl1%3D%2Foffers%2Foffer3for2%26url2%3D%2Foffers%2Ftest%26url3%3D%2Foffers%2Fadvance-purchase

JS:

var linkPath  = window.location.pathname;
var linkSplit = linkPath.replace(/\.\w+$/, '').split('/');
var linkTrim  = linkSplit.slice(-1).join('/');
console.log('Link name: ', linkTrim);

let offerParameter = $.cookie('offerParameter');
let offerSplit = offerParameter.split('&');

if($.inArray(linkTrim, offerSplit)){
  console.log("Name Exists");
} else { 
  console.log("Name Not Exists");
}
jquery
1个回答
0
投票

您正在寻找完全匹配,但您想要搜索子字符串。您可以使用.includes()方法来测试字符串是否包含子字符串。使用.any()在数组中搜索与任意测试匹配的元素。

var linkTrim = "offer3for2";
var offerSplit = ["?url1=/offers/offer3for2"];

if (offerSplit.some(s => s.includes(linkTrim))) {
  console.log("Name exists");
} else {
  console.log("Name Not Exists");
}
© www.soinside.com 2019 - 2024. All rights reserved.