0

我想通过它的键而不是名称来获取一个cookie值,但是第一个键给了我最后一个cookie,第二个=从最后一个等中获取第二个等等,所以我颠倒了数组。那么为什么它不起作用呢?

function getByKey(key){ 
 var cookies = document.cookie.split(";");
    var rev = cookies.reverse();
    return rev[key];
}
getByKey(2);

http://codepen.io/tarranjones/pen/FIzlt

有任何想法吗。

4

2 回答 2

1

您的getByKey()功能可能会正常工作,但您没有在 codepen 中使用它。

a = document.cookie.split(';')
s = a.reverse();

reverse()将更改原始数组,因此您最终会反转a并指向s相同的(反转的)数组。

制作数组的反向副本的最简单方法可能是:

for( var i = a.length - 1, j = 0; i >= 0; --i, ++j ) {
    s[ j ] = a[ i ];
}

代码笔: http ://codepen.io/anon/pen/vwErt

于 2013-10-17T07:22:08.740 回答
1

尝试使用控制台调试:

console.log(document.cookie.split(";")[1]);
console.log(getByKey(1));

此外,我的 codepen 与您的功能(差异很小)有效。

替换这段代码;

var cookies = document.cookie.split(";");
var rev = cookies.reverse();
return rev[key];

用这个块

var cookies = document.cookie.split(";");
return cookies.reverse()[key];

http://codepen.io/zefirka/pen/ndtHG

于 2013-10-17T07:39:18.857 回答