【问题标题】:How do you get the array length of a variable in a localStorage如何获取 localStorage 中变量的数组长度
【发布时间】:2018-09-28 07:24:07
【问题描述】:

我有一个存储在 localStorage 中的数组,它有一个名为“key”的键,它包含这个值 ["Gio","Ben"]

我如何获得长度 我试过了

localStorage.getItem("name").length;

但它显示不同的输出 我所期待的应该是 2。

提前致谢

【问题讨论】:

    标签: javascript arrays json local-storage


    【解决方案1】:

    您必须使用 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。

    【讨论】:

    • 谢谢它的工作,但是如果我想从数组中获取一个特定的值呢?
    • @Yatoooo 然后你可以遍历解析的数组,即我的sn-p中的arrayFromStroage。或者,您甚至可以过滤该数组。
    • 感谢您的帮助。
    • 先生,我如何循环打印我尝试过的数组的内容(var i = 0; i
    • @Yatoooo 有几种方法可以做到这一点。第一个是for(var i = 0; i < arrayLength; i++){ console.log(arrayFromStroage[i]); } 第二个是arrayFromStorage.forEach(t => console.log(t)); 您应该参考this 问题以获取更多信息。
    【解决方案2】:

    localStorage 只存储字符串。

    如果你有一个数组,你需要在使用JSON.parse之前解析它:

    var arrStr = '["Gio","Ben"]';
    
    console.log(JSON.parse(arrStr));

    【讨论】:

      【解决方案3】:

      实际上我们只能将字符串值保存在本地存储中。 getItem("name") 函数返回一个字符串。所以首先你必须把它转换成一个 json 对象,然后你才能得到数组长度。

      JSON.parse(localStorage.getItem("name")).length;
      

      【讨论】:

      • @Yatoooo 试试这个。希望这对你有帮助
      【解决方案4】:

      实际上我们在本地存储中有字符串值。 getItem("name").length 函数返回字符串中的字符总数。因此,对于列表,您可以尝试上述所有技巧,但对于字典,它们将不起作用。所以,你能做的就是获取所有的密钥,然后计算它们。 以下是您可以执行的操作:

      Object.keys(name).length;

      它会起作用的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-21
        • 2019-09-22
        • 1970-01-01
        • 2021-06-22
        • 2012-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多