2016-08-09 24 views
0

Ich habe einige Informationen in localstorage gespeichert und die Speicherung von Daten wie:Klar localstorage für einen bestimmten Schlüssel

localStorage : 
MessageCount : "[{"id":"user_abc-com","MsgCount":8},{"id":"user2_abc-com","MsgCount":16}]" 

enter image description here

Hier I MsgCount = 0 von 8 für eine bestimmte ID machen wollen: user_abc-com

Also, wie geht das?

+0

Parse es, bearbeiten, es stringify, es erneut speichern. – Kaiido

+0

Sie sollten dieses Objekt extrahieren, Wert ändern und es wieder in localstorage verschreiben – ArtemSky

Antwort

1

s ist Ihr local, jsfiddle

var s = "[{\"id\":\"user_abc-com\",\"MsgCount\":8},{\"id\":\"user2_abc-com\",\"MsgCount\":16}]"; 
var s_obj = JSON.parse(s); // parsing it from string to object 

s_obj.forEach(function(v, k) { // iterate through array 
    if(v.id == 'user_abc-com') s_obj[k].MsgCount = 0 // change value 
}); 

s = JSON.stringify(s_obj); // switching to string again (ready to save in localStorage) 
0

einfach Ihr Element mit neuen Wert aktualisieren:

var messages = [ 
 
    {"id": "user_abc-com", "MsgCount": 8}, 
 
    {"id": "user2_abc-com", "MsgCount": 16} 
 
]; 
 

 
localStorage.setItem('MessageCount', JSON.stringify(messages)); 
 

 
// ----------- // 
 

 
var messages = JSON.parse(localStorage.getItem('MessageCount')); 
 
messages[0]['MsgCount'] = 0; 
 
localStorage.setItem('MessageCount', JSON.stringify(messages)); 
 

 
// ----------- // 
 

 
console.log(localStorage.getItem('MessageCount'));

+0

Danke mein Freund, aber die Lösung von Sojtin ist viel besser als das Abrufen von dynamischen Array-Schlüssel, wo Sie Nachrichten [0] verwenden. Danke nochmal für deine Hilfe –