[英]Check if a cookie array element exists
如何检查cookie中是否已存在数组元素?
这是我的代码:
var cookieList = function (cookieName) {
var cookie = Cookies.get(cookieName);
var items = cookie ? cookie.split(/,/) : new Array();
return {
"add": function (val) {
items.push(val);
Cookies.set(cookieName, items.join(','), { path: '/' });
}
}
}
var list = new cookieList("MyItems");
$('.items').on('click', '.add', function () {
var imageId = $(this).data("id");
list.add(JSON.stringify(imageId));
});
您可以将exists
的方法添加到cookieList
,然后使用Array.indexOf()
检查传递的值是否在items
数组中。
var cookieList = function (cookieName) {
var cookie = Cookies.get(cookieName);
var items = cookie ? cookie.split(/,/) : new Array();
return {
"add": function (val) {
items.push(val);
Cookies.set(cookieName, items.join(','), {
path: '/'
});
},
exists: function (val) {
return items.indexOf(val) > -1
}
}
}
var list = new cookieList("MyItems");
$('.items').on('click', '.add', function () {
var imageId = $(this).data("id");
list.add(JSON.stringify(imageId));
var exists = list.exists(JSON.stringify(imageId))
});
演示: 小提琴
FWIW, js-cookie开箱即用地处理JSON:
var cookieList = function (cookieName) {
var items = Cookies.getJSON(cookieName) || [];
return {
add: function (val) {
items.push(val);
Cookies.set(cookieName, items);
// "path: /" is default,
// see https://github.com/js-cookie/js-cookie/tree/v2.0.2#path
},
exists: function (val) {
return items.indexOf(val) > -1
}
}
}
var list = new cookieList("MyItems");
$('.items').on('click', '.add', function () {
var imageId = $(this).data("id");
list.add(JSON.stringify(imageId));
var exists = list.exists(JSON.stringify(imageId))
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.