Удаление ник-имени из строки localStorage

#javascript #local-storage

Вопрос:

Я пытаюсь проверить localStorage на наличие псевдонима, и если он включает в себя псевдоним, удалите его из локального хранилища.

 window.removeNickname = (n) => {
    const names = localStorage['nicknames'].split(','); // Output = ["NAME 1", "NAME 2", "NAME 3"]
    if (names.includes(n)) {
        // HOW CAN I REMOVE THE NAME FROM THE LOCALSTORAGE HERE AND REPLACE THE LOCALSTORAGE NICKNAMES.
    }
};
    
removeNickname('NAME 2');
 

Комментарии:

1. localStorage -это хранилище пары ключ/значение, и value это всегда string тип, вам нужно заменить строку новой строкой без того, что вы хотите… если вы знаете название, localStorage.setItem("nicknames", localStorage.getItem("nicknames").replace("balexandre,", "")) достаточно простого — попробуйте в консоли браузера 😊 👌

Ответ №1:

Вы можете попытаться удалить элемент из массива с помощью split и установить новый массив в качестве ваших псевдонимов. Сращивание удаляет элементы из массива, начиная с индекса, который вы упомянули в первом аргументе, и удаляет столько элементов, сколько вы задали во втором аргументе.

 window.removeNickname = (n) => { 
  const names = localStorage['nicknames'].split(','); // Output = ["NAME 1", "NAME 2", "NAME 3"]
  if (names.includes(n)) {
    localStorage.setItem(nicknames, names.splice(names.indexOf(n), 1));
  }
};
 

Комментарии:

1. У вас ошибка в коде — Неперехваченная ошибка синтаксиса: отсутствует ) после списка аргументов

2. @entlassungspapi Да, я просто забыл поставить закрывающие скобки, спасибо, что упомянули об этом 🙂