如何将数组存储在localStorage中?

这个问题在这里已经有了答案:

  • 在HTML5 localStorage中存储对象25个答案

  • localStorage只支持字符串。 使用JSON.stringify()JSON.parse()

    var names = [];
    names[0] = prompt("New member name?");
    localStorage.setItem("names", JSON.stringify(names));
    
    //...
    var storedNames = JSON.parse(localStorage.getItem("names"));
    

    localStoragesessionStorage只能处理字符串。 您可以扩展默认的存储对象来处理数组和对象。 只需包含这个脚本并使用新的方法:

    Storage.prototype.setObj = function(key, obj) {
        return this.setItem(key, JSON.stringify(obj))
    }
    Storage.prototype.getObj = function(key) {
        return JSON.parse(this.getItem(key))
    }
    

    使用localStorage.setObj(key, value)来保存数组或对象,并使用localStorage.getObj(key)来检索它。 sessionStorage对象使用相同的方法。

    如果您只是使用新方法访问存储,则在保存并解析之前,每个值都将转换为JSON字符串,然后由getter返回。

    来源:http://www.acetous.de/p/152


    按照no建议使用JSON.stringify()JSON.parse() 。 这可以防止包含分隔符的成员名称(例如,成员名称three|||bars )的罕见但可能的问题。

    链接地址: http://www.djcxy.com/p/4795.html

    上一篇: How do I store an array in localStorage?

    下一篇: Stringify (convert to JSON) a JavaScript object with circular reference