我存儲在localStorage的一個數組,看起來像這樣:Javascript:從存儲在localStorage中的數組中刪除對象?
[
{
"location": "westcliff, uk",
"stopover": true
},
{
"location": "westcliff, uk",
"stopover": true
},
{
"location": "southend, uk",
"stopover": true
},
{
"location": "Leigh-on-sea, uk",
"stopover": true
}
]
我有一個按鈕,當我點擊,它會尋找localtion:
數組中,它會從陣列中刪除該對象和然後再次存儲在本地存儲中。
按鈕的代碼如下所示:
$(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);
}):
這一切工作正常。
,我有是單擊按鈕時,它會刪除所有「westcliff, uk
」對象的問題。
什麼,我需要做的是隻爲每次點擊刪除1個對象!
可能有人請就這個問題諮詢?
在此先感謝。
編輯:
我嘗試這樣做,這不會從數組中刪除任何東西:
$(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);
}):
不要使用'.filter'。編寫一個循環,刪除找到的第一個匹配元素,然後跳出循環。 – Barmar
將數組存儲在localStorage中與此問題完全無關。 – Barmar