我不确定我的问题的标题是否有意义,但是我在努力使此代码正常工作时会尝试进一步解释。
我正在浏览页面以查找任何脚本标记,然后提取它们的src值。我现在要做的就是检查Jquery对象中是否包含两个特定目录之一。如果可以,那么我将与他们一起做其他工作。到目前为止,我的代码看起来像这样;
var scriptTags = $('script');
var directoryNames = ['abc/custom','xyz/custom'];
for (var i = 0; i < scriptTags.length; i++) {
var srcVal = scriptTags[i].src;
if (ANY DIRECTORY NAME VALUES FOUND WITHIN scriptTags) {
console.log('found');
}
}
如果有人能对此有所启发,我真的很感激,
谢谢。
答案 0 :(得分:0)
您正在寻找directoryNames.indexOf(srcVal)
。
indexOf函数将在找到的元素(srcVal)的数组中返回索引,如果找不到,它将返回-1。
最终产品:
if(directoryNames.indexOf(srcVal) > -1) ...
答案 1 :(得分:-2)
if(directoryNames.some(name => srcVal.includes(name)))
只需遍历所有目录名称,然后检查它们是否属于当前URL。或者,如果您有很多网址,则最好建立一棵目录树:
const root = {};
for(const url of directoryNames) {
let acc = root;
for(const path of url.split("/")) {
acc = acc[path] = acc[patch] || {};
}
acc.isEnd= true;
}
因此,您可以使用以下方法检查网址:
if(srcVal.split("/").reduce((acc, path) => acc[path] || {}, root).isEnd)