Ich habe ein Array in localstorage gespeichert, die wie folgt aussieht:Javascript: Entfernen von Objekt aus Array in LocalStorage gespeichert?
[
{
"location": "westcliff, uk",
"stopover": true
},
{
"location": "westcliff, uk",
"stopover": true
},
{
"location": "southend, uk",
"stopover": true
},
{
"location": "Leigh-on-sea, uk",
"stopover": true
}
]
Ich habe eine Schaltfläche, dass, wenn ich auf klicken, wird es für die localtion:
in diesem Array aussehen wird, und es wird das Objekt aus dem Array löschen und speichert dann wieder im lokalen Speicher.
Der Button-Code sieht wie folgt aus:
$(document).on('click', ".cart-del", function() {
var retrievedObject2 = localStorage.getItem('waypoints');
var parsedObject2 = JSON.parse(retrievedObject2);
var result2 = parsedObject2.filter(function(x){return x.location !== "westcliff, uk"; });
var setLoc2 = JSON.stringify(result2);
localStorage.setItem('waypoints', setLoc2);
}):
Das alles funktioniert gut.
Das Problem, das ich habe, ist, dass wenn die Schaltfläche geklickt wird, wird es alle "westcliff, uk
" -Objekt entfernen.
Was ich tun muss, ist nur 1 Objekt pro Klick zu entfernen!
Könnte jemand bitte Beratung zu diesem Thema?
Vielen Dank im Voraus.
EDIT:
Ich habe versucht, dies und das entbindet nicht alles aus dem Array:
$(document).on('click', ".cart-del", function() {
var retrievedObject2 = localStorage.getItem('waypoints');
var parsedObject2 = JSON.parse(retrievedObject2);
for(var i = 0; i < parsedObject2.length; i++){
if(parsedObject2[i].text == "westcliff, uk"){
parsedObject2.splice(i, 1);
break;
}
}
var result2 = parsedObject2;
var setLoc2 = JSON.stringify(result2);
localStorage.setItem('waypoints', setLoc2);
}):
Sie 'nicht .filter' verwenden. Schreiben Sie eine Schleife, die das erste gefundene übereinstimmende Element entfernt und dann aus der Schleife ausbricht. – Barmar
Das Speichern des Arrays in localStorage ist für diese Frage völlig irrelevant. – Barmar