#jquery
#jquery
Вопрос:
inArray проверит, существует точное значение или нет?
из URL получаем linkTrim
= offer3for2
из-за разделения файлов cookie, offerSplit
= ?url1=/offers/offer3for2
Необходимо сравнить и проверить, существует ли offer3for2
текст в обоих linkTrim
amp; offerSplit
или нет.
Путь:
https://www.test.com/content/test/en/offers/offer3for2.html
cookie — параметр предложения
?url1=/offers/offer3for2&url2=/offers/test&url3=/offers/advance-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('amp;');
if($.inArray(linkTrim, offerSplit)){
console.log("Name Exists");
} else {
console.log("Name Not Exists");
}
Комментарии:
1.
$.inArray
ищет точное совпадение, а не подстроку.offer3for2
не совпадает с?url1=/offers/offer3for2
2. @Barmar Спасибо за ваш ответ .. есть ли какой-либо способ объединить или нарезать массив в соответствии с именем пути?
Ответ №1:
Вы ищете точное совпадение, но хотите выполнить поиск по подстроке. Вы можете использовать .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");
}