【发布时间】:2018-09-28 07:24:07
【问题描述】:
我有一个存储在 localStorage 中的数组,它有一个名为“key”的键,它包含这个值 ["Gio","Ben"]
我如何获得长度 我试过了
localStorage.getItem("name").length;
但它显示不同的输出 我所期待的应该是 2。
提前致谢
【问题讨论】:
标签: javascript arrays json local-storage
我有一个存储在 localStorage 中的数组,它有一个名为“key”的键,它包含这个值 ["Gio","Ben"]
我如何获得长度 我试过了
localStorage.getItem("name").length;
但它显示不同的输出 我所期待的应该是 2。
提前致谢
【问题讨论】:
标签: javascript arrays json local-storage
您必须使用 JSON.parse 解析数组,然后您可以像任何其他数组一样获取它的长度。
var arrayFromStroage = JSON.parse(localStorage.getItem("name"));
var arrayLength = arrayFromStroage.length;
请注意,localStorage.getItem("name").length; 会为您提供存储在 localStorage 中的 JSON 字符串的长度。对于数组["Gio","Ben"],其JSON 字符串为"["Gio","Ben"]"。所以长度是 13。
【讨论】:
arrayFromStroage。或者,您甚至可以过滤该数组。
for(var i = 0; i < arrayLength; i++){ console.log(arrayFromStroage[i]); } 第二个是arrayFromStorage.forEach(t => console.log(t)); 您应该参考this 问题以获取更多信息。
localStorage 只存储字符串。
如果你有一个数组,你需要在使用JSON.parse之前解析它:
var arrStr = '["Gio","Ben"]';
console.log(JSON.parse(arrStr));
【讨论】:
实际上我们只能将字符串值保存在本地存储中。 getItem("name") 函数返回一个字符串。所以首先你必须把它转换成一个 json 对象,然后你才能得到数组长度。
JSON.parse(localStorage.getItem("name")).length;
【讨论】:
实际上我们在本地存储中有字符串值。 getItem("name").length 函数返回字符串中的字符总数。因此,对于列表,您可以尝试上述所有技巧,但对于字典,它们将不起作用。所以,你能做的就是获取所有的密钥,然后计算它们。
以下是您可以执行的操作:
Object.keys(name).length;
它会起作用的。
【讨论】: