搜索字符串是否存在于类似indexOf的数组的任何值中

search if string exists in any value of array like indexOf

本文关键字:数组 任何值 indexOf 于类似 字符串 是否 存在 搜索      更新时间:2023-09-26

我将一个cookie拆分为一个数组:

var cooks = document.cookie.split(';');
[dogs=bla, cats=sdfgh, cabbages=kjhgfdfg]

如果我想找到"cats=sdfgh"的索引,我可以使用

cooks.indexOf('cats=sdfgh');
1

但如果我想搜索猫的价值是否已经设定,我该怎么做?cooks.indexOf(find('cat='));或类似的东西?

所以,在不知道猫的价值的情况下,我如何判断它是否存在于饼干中?

我怎样才能得到那个cookie的索引号?

您可以运行一个简单的正则表达式:

if(fun = document.cookie.match(/(^cats=|;cats=)([^;]+)/)){
    console.log(fun);
}

它会给你一个数组,如果匹配,第三个成员就是你的值:)

JSFIDDLE

然而,如果你不必支持糟糕的浏览器,那么值得一看评论中引用的MDN cookie框架。

您可以使用Array.prototype.some方法来查找数组中的第一个匹配值:

var cooks = document.cookie.split(';'); // ["dogs=bla", "cats=sdfgh", "cabbages=kjhgfdfg"]
var isSet = cooks.some(function(cookie) {
    return cookie.indexOf('cats') == 0;
}); // => true