如何创建一个cookie数组并将其反转

时间:2013-10-17 07:14:55

标签: javascript arrays cookies

我想通过它的键而不是名字来获取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

任何想法。

2 个答案:

答案 0 :(得分: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 ];
}

Codepen:http://codepen.io/anon/pen/vwErt

答案 1 :(得分: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