搜索字符串是否存在于数组的任何值中,如 indexOf
search if string exists in any value of array like indexOf
我有一个 cookie 拆分成一个数组:
var cooks = document.cookie.split(';');
[dogs=bla, cats=sdfgh, cabbages=kjhgfdfg]
如果我想找到 'cats=sdfgh' 的索引,我可以使用
cooks.indexOf('cats=sdfgh');
1
但是如果我想搜索一下值cats是否已经被设置,我该怎么做呢? cooks.indexOf(find('cat='));
或类似的东西?
所以在不知道猫的价值的情况下,如何判断它是否存在于 cookie 中?
而且,我怎样才能得到那个 cookie 的索引号?
你可以运行一个简单的正则表达式:
if(fun = document.cookie.match(/(^cats=|;cats=)([^;]+)/)){
console.log(fun);
}
它会给你一个数组,如果匹配的话,第三个成员就是你的值:)
但是,如果您不必支持糟糕的浏览器,那么值得一看评论中引用的 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
我有一个 cookie 拆分成一个数组:
var cooks = document.cookie.split(';');
[dogs=bla, cats=sdfgh, cabbages=kjhgfdfg]
如果我想找到 'cats=sdfgh' 的索引,我可以使用
cooks.indexOf('cats=sdfgh');
1
但是如果我想搜索一下值cats是否已经被设置,我该怎么做呢? cooks.indexOf(find('cat='));
或类似的东西?
所以在不知道猫的价值的情况下,如何判断它是否存在于 cookie 中?
而且,我怎样才能得到那个 cookie 的索引号?
你可以运行一个简单的正则表达式:
if(fun = document.cookie.match(/(^cats=|;cats=)([^;]+)/)){
console.log(fun);
}
它会给你一个数组,如果匹配的话,第三个成员就是你的值:)
但是,如果您不必支持糟糕的浏览器,那么值得一看评论中引用的 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