【问题标题】:Delete array from object in localstorage从本地存储中的对象中删除数组
【发布时间】:2013-04-16 07:00:11
【问题描述】:

当我单击一个按钮时,我会使用参数“id”加载函数“DeleteFromlocalStorage”。 这是我的函数“DeleteFromlocalStorage”:

        function DeleteSessionFromLocalStorage(data)
    {
        var id_session = data;

        a = localStorage.getItem('session');

        alert(a);

    }

我的alert(a); 给了我这个输出:

{"21114":{"id":"21114","external_id":"","sessiongroupid":"1844","eventid":"5588","order":"0","name ":"localStorage HTML5 Session","description":"localstorage","starttime":"2013-04-23 12:00:00","endtime":"2013-04-23 13:30:00", "扬声器":"","位置":"","mapid":"0","xpos":"0.000000","ypos":"0.000000","maptype":"plan","imageurl": "","presentation":"","organizer":"0","twitter":"","allowAddToFavorites":"0","allowAddToAgenda":"0","votes":"0"," url":"","venueid":"0"}, "21115 :{"id":"21115","external_id":"","sessiongroupid":"1845","eventid":"5588","order":"0","name":"tweede" ,"description":"tweede","starttime":"2013-04-03 00:00:00","endtime":"2013-04-04 00:00:00","speaker":"", "位置":"","mapid":"0","xpos":"0.000000","ypos":"0.000000","maptype":"plan","imageurl":"","presentation": "","组织者":"0","twitter":"","allowAddToFavorites":"0","allowAddToAgenda":"0","votes":"0","url":"","场地id":"0"},"21118":{"id":"21118","external_id":"","sessiongroupid":"1848","eventid":"5588","order":"0 ","name":"javascript session","description":"session about javascript","starttime":"2013-05-15 12:00:00","endtime":"2013-05-15 12: 30:00","speaker":"","location":"waregem","mapid":"0","xpos":"0.000000","ypos":"0.000000","maptype":"plan ","imageurl":"","presentation":"","organizer":"0","twitter":"","allowAddToFavorites":"0","allowAddToAgenda":"0","votes" :"0","url":"","venueid":"0"}}

如您所见,我有一个 json 字符串。关键始终是 id。现在我想删除带有 id = 参数 id 的 json。

我必须获取对象并删除子对象并在我的 localStorage 中恢复对象。有人知道我该怎么做吗?

提前致谢!

【问题讨论】:

  • 在我看来更像是 JSON 字符串?
  • 你问的数组在哪里?
  • 如果您知道密钥,请使用localStorage.removeItem(key)
  • 是的,对不起。这是一个json字符串
  • 首先,您的 JSON 是有效的,请参阅 jsonlint.com

标签: javascript jquery arrays object


【解决方案1】:

我可能错了,但这是你想要做的:

localStorage.removeItem(key);

或者,如果在 localStorage JSON 项目中存在某些内容,则执行以下操作:

  function DeleteSessionFromLocalStorage(data)
{
    var id_session = data;
    //Not sure but you might need to do JSON.parse(a) after to get it
    a = localStorage.getItem('session');

    delete a.data
    alert(a);

}

【讨论】:

  • 不起作用。我将不得不获取对象并删除子对象并在我的 localStorage 中恢复对象。你知道我该怎么做吗?
【解决方案2】:

您的代码示例对我来说就像一个 javascript 对象。在这种情况下,您可以使用“删除”关键字。很好的讨论:

How do I remove a property from a JavaScript object?

类似

删除一个["21114"]

【讨论】:

  • 不起作用。我将不得不获取对象并删除子对象并在我的 localStorage 中恢复对象。你知道我该怎么做吗?
  • if 'localStorage.getItem('session');'实际上是返回一个字符串(您的问题没有准确显示),那么您需要将其转换为 javascript 对象。 var obj = JSON.parse(localStorage.getItem('session'));删除 obj["key"];
【解决方案3】:
for(obj in json) {       
            if(json[obj].id == id_session)
            {
                delete json[obj];

            }
        }

        localStorage.setItem('session', JSON.stringify(json));

获取对象,检查每个对象的每个 id 并删除 id = "id_session" 的对象。

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 1970-01-01
    • 2020-12-31
    • 2017-11-07
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    相关资源
    最近更新 更多