NEWS
[gelöst] hilfe bei element aus json löschen
-
kann mir bitte jemand sagen (evtl @paul53 ), wie man den ganzen block aus diesem object löscht - der ganze block von mit text : WARNUNG LEBENSMITTEL1 soll gelöscht werden
{ "text": "WARNUNG Lebensmittel1 ", "backgroundColor": "black", "borderColor": "ligthgreen", "icon": "/vis.0/armin/img/temporarily_not_available.png", "iconColor": "lightgreen", "fontColor": "lightgreen" },
[ { "text": "WARNUNG Lebensmittel ", "backgroundColor": "black", "borderColor": "ligthgreen", "icon": "/vis.0/armin/img/temporarily_not_available.png", "iconColor": "lightgreen", "fontColor": "lightgreen" }, { "text": "WARNUNG Lebensmittel1 ", "backgroundColor": "black", "borderColor": "ligthgreen", "icon": "/vis.0/armin/img/temporarily_not_available.png", "iconColor": "lightgreen", "fontColor": "lightgreen" }, { "text": "WARNUNG Lebensmittel2 ", "backgroundColor": "black", "borderColor": "ligthgreen", "icon": "/vis.0/armin/img/temporarily_not_available.png", "iconColor": "lightgreen", "fontColor": "lightgreen" } ]
getestet funktioniert nicht
for(var i=0;i<myObj.length;i++) { if(myObj[i].text=="WARNUNG Lebensmittel1") delete myObj[i];
-
@liv-in-sky
Versuche es mal so:let arr = JSON.parse(json); for(let i = 0; i < arr.length; i++) { if(arr[i].text == 'WARNUNG Lebensmittel1 ') arr.splice(i, 1); }
Achte darauf, dass am Ende von .text ein Leerzeichen ist.
-
oh man- das hatte ich schon so ähnlich - erstmal danke dafür - das funktioniert
jetzt aber eine stufe weiter
das nächste probleme : alle 3 text-keys haben den selben namen "WARNUNG Lebensmittel" - also ohne 1,2,3
wenn die schleife jetzt läuft, bleibt immer ein eintrag stehen - ich nehme an, weil ich das object ändere - die anzahl, wie oft das drinsteht kann unterschiedlich sein
gibt es da eine elegante lösung oder lasse ich das ganze einfach zweimal hintereinander laufen (so funktioniert es)
-
@liv-in-sky
Versuche mal:for(let i = 0; i < arr.length; i++) { if(arr[i].text == 'WARNUNG Lebensmittel ') { arr.splice(i, 1); i--; } }
-
@paul53 tausend dank - das war es