【问题标题】:Add an array to local storage and retrieve the array将数组添加到本地存储并检索数组
【发布时间】:2023-03-08 14:44:01
【问题描述】:

我正在使用本地存储,但遇到了问题。

我想像这样存储键的值。这些值是动态添加的,应该用 "," 分隔。我应该通过比较值来检索它们

这是我的看法

key                                       value
user1                                   a,b,c,d,e....

值字段中的值应动态添加。说我有字段用户名并添加朋友。用户名应取位置键,添加朋友(动态)应取值位置。

first iteration:
username _a________
add friend _hello_______

localstorage : key                   value
                a                     hello
second iteration:

username _____a___
add friend : __stact___

local storage : key            value
                a              hello , stact
third iteration : 
username _____a___
add friend : __hi___

local storage : key            value
                a              hello , stact,hi

如果我想删除 stact,我必须写 localStorage.removeKey(a[1])

请帮帮我,因为我是这个东西的新手 我已经对我的代码使用了以下答案之一,但它没有用。相反,它抛出错误 我已经尝试了以下

var ls = (function () {
    var _key = function (username) {
        return username; 
    },
    _saveFriends = function (username, friends) {
        localStorage.setItem(ls._key(username), JSON.stringify(friends));
    };

    function getFriends(username) {
        return JSON.parse(localStorage.getItem(ls._key(username)) || '[]');
    }

    return {
        getFriends: getFriends,
        addFriend: function (username, friend) {
            var friends = getFriends(username);
            friends.push(friend);
            _saveFriends(friends);
        },
        removeFriend: function (username, friend) {
            var friends = getFriends(username);
            var index = friends.indexOf(friend);
            if (index >= 0) {
                friends.splice(index, 1);
            }
            _saveFriends(friends);
        }
    };
})();

function main()
{
ls.addFriend('revanth','aastha');
ls.addFriend('revanth','pobala');
ls.getFriends('revanth');

这是错误 Uncaught TypeError: undefined is not a function 错误在这一行 返回 JSON.parse(localStorage.getItem(ls._key(username)));

【问题讨论】:

标签: javascript local-storage


【解决方案1】:

以下是您可以在全局命名空间中使用的一些函数,以便在任何框架中轻松执行此操作:

var ls = (function () {
    var _key = function (username) {
        return username; // in case you want to namespace the keys later
    },
    _saveFriends = function (username, friends) {
        localStorage.setItem(ls._key(username), JSON.stringify(friends));
    };

    function getFriends(username) {
        return JSON.parse(localStorage.getItem(ls._key(username)) || '[]');
    }

    return {
        getFriends: getFriends,
        addFriend: function (username, friend) {
            var friends = getFriends(username);
            friends.push(friend);
            _saveFriends(friends);
        },
        removeFriend: function (username, friend) {
            var friends = getFriends(username);
            var index = friends.indexOf(friend);
            if (index >= 0) {
                friends.splice(index, 1);
            }
            _saveFriends(friends);
        }
    };
})();

// Use like so: 
//   ls.getFriends(username); 
//   ls.addFriend(username, friendname); 
//   ls.removeFriend(username, friendname);

【讨论】:

    【解决方案2】:
    function addItem(user,str){
      // get value in localStorage and split into array
      var tempArr = localStorage.getItem(user).split(",");
      // if only adding unique items, check if unique
      // if (tempArr.indexOf(str)<0)...
      tempArr.push(str);
      // turn the temp array back into string
      var newStr = tempArr.join();
      // save back to localStorage
      localStorage.setItem(user, newStr);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 2021-03-24
      • 2015-03-11
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多