以下是浏览器Cookie:
console.log(document.cookie);
//=> name_instagram=true; name_googleplus=true;
这是我的代码:
console.log(document.cookie.split(';').filter( (c) => c.startsWith(parts[1])).map( (d) => d.replace(/.*_(.*)=true/, "$1")));
//=> ["instagram"]
预期结果为["instagram", googleplus]
。我怎么能得到它?
目前正如您所见,cookie中的最后一项将作为结果值存储到数组中。怎么了?
答案 0 :(得分:1)
数组中的startsWith
过滤器第二项将是“name_googleplus = true;”后,请注意前导空格,因此它以“name_”而不是“name_”开头。修复它的一种方法是使用trim()
删除空格。
console.log(document.cookie.split(';').filter( (c) => c.trim().startsWith('name_')).map( (d) => d.replace(/.*_(.*)=true/, "$1")));