使用 JS/JQuery 创建永不过期的 Cookie 数组?

Create Cookie Array that never expires with JS/JQuery?

我有一个带有引语的网站,希望用户能够通过单击 star-icon 来收藏引语。我有这个代码:

jQuery('.fav').click(function(event) {
    event.preventDefault();
    $this = $(this).parent();
    var id = $this.attr("data-id");

    // Build the expiration date string:
    var expiration_date = new Date();
    var cookie_string = '';
    expiration_date.setFullYear(expiration_date.getFullYear() + 1);
    // Build the set-cookie string:
    cookie_string = "fav="+id+"; path=/; expires=" + expiration_date.toGMTString();
    // Create/update the cookie:
    document.cookie = cookie_string;
});

但这只保存了一个cookie"fav=id"。我想创建一个 cookie 数组,其中所有将被单击的引号都与它们的 id 一起保存在 cookie 数组 "fav" 中,因此我可以向用户显示所有已保存引号的列表。我怎样才能做到这一点?

使用 JSON.stringify() 和 JSON.parse() 方法将数组或对象作为字符串存储在 cookie 中,并在以后检索它。

Cookie 只能作为字符串保存。如果我想模拟一个数组,我将对其进行序列化和反序列化。可以使用 Json

写入数组

var cookieArray= {};
cookieArray[id] = true; //or whatever value
var stringifiedArr = JSON.stringify(cookieArray);
$.cookie("favs",stringifiedArr , { path: '/' });

读取 cookie

var arrFromCookie = $.cookie("favs");
var favsCookieData = JSON.parse(arrFromCookie);