Похоже, вы не совсем понимаете localStorage API. Я бы предложил прочитать localStorage
из MDN.
Первая проблема в том, что вы, возможно, неправильно храните информацию в localStorage. Локальное хранилище на основе ключа . Это означает, что все данные находятся в локальном хранилище с помощью ключа. Например {"key" : "data"}
.
Примечание: данные в локальном хранилище хранятся в виде строки. Таким образом, для read/write
данных to/from
локального хранилища вам необходимо stringify/parse
его.
Если продолжить ваш вопрос, у меня сложилось впечатление, что вы сохраняете весь этот массив в localStorage, а затем пытаетесь удалить каждый ключ внутри массива. Как было сказано ранее, это не сработает по нескольким причинам. Во-первых, вы не можете использовать метод localStorage.removeItem()
для удаления сохраненного объекта, потому что объект на самом деле является строкой и не анализируется. Во-вторых, даже если она не была сохранена как строка, функция не работает с данными хранилища, а с ключом, под которым они были сохранены. То, чего не хватает в вашем коде, что очень помогло бы, это то, как вы экономите в localStorage
. Потому что в этом случае вам даже не придется звонить removeItem()
три раза, просто позвоните один раз на ключ, под которым он все хранится. Позвольте мне привести пример, который, я думаю, может относиться к вашему вопросу:
var data = [
{
"id": 1,
"name" : "Joe"
},
{
"id": 2,
"name": "Peter"
}
]
//Setting the data to localStorage under the key "people"
localStorage.setItem("people", data);
// ... inside your ajax function
...({
//Remove whole array of data based on key
localStorage.removeItem("people");
//All done with removal
//Rest of your code
})
ЕСЛИ вы хотите удалить только эти определенные ключи в localStorage
, вам придется либо сохранять их отдельно (рекомендуется), либо читать, анализировать , редактируйте, восстанавливайте (не рекомендуется) данные каждый раз, когда вы хотите это сделать.