gpt4 book ai didi

Javascript object.value 返回未定义

转载 作者:行者123 更新时间:2023-11-28 19:14:53 25 4
gpt4 key购买 nike

在我的一个 JavaScript 中,我有一个对象,其中包含当前保存的所有 cookie。该对象通过以下方式获得:

var cookies = document.cookie.split(";").
map(function(el){ return el.split("="); }).
reduce(function(prev,cur){ prev[cur[0]] = cur[1]; return prev },{});

之后我按如下方式读取 cookie 对象:

console.log(cookies);
var json = cookies['tracks'];
console.log(json);

控制台输出看起来像一个普通的 JavaScript 对象:

Object { PHPSESSID: "e964d0b67bbabd149906473b6b2183d5",  
tracks: "%7B%22test%22%3A%22tested%22%2C%2223%22%3A%22ert%22%7D" }
undefined

但是,变量 JSON 仍然未定义,无论我使用 cookies.tracks 还是 cookies["tracks"] 或我使用的浏览器或我是否尝试检查 PHPSESSID cookie 或 tracks cookie。知道为什么会出现这种情况吗?

我知道以前曾有人问过类似的问题,但是,给出的答案均不适用于此案例。

最佳答案

由于 split(),您可能会遇到 key 中存在多余空格的问题。

当您按“;”进行拆分时,您的键值前面将有一个前置空格,该空格将在其余处理中继续进行。如果您在 Firebug 中查看“cookies”对象的 DOM 版本,右键单击 tracks,单击“复制路径”,然后粘贴结果,我敢打赌您会看到这个:[“轨道”]

要解决此问题,您可以 trim 逻辑中某处的空格,或者使用 cookies["tracks"] 引用该属性。

关于Javascript object.value 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com