Не удается удалить указанный элемент c из массива JSON в локальном хранилище - PullRequest
0 голосов
/ 11 апреля 2020

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

static removeBook(isbn) {
    const books = Store.getBooks();

    books.forEach((book, index) => {
      if (book.ISBN === isbn) {
        books.splice(index, 1);
      }
    });
  }

Но, похоже, он не работает. Вот коды класса книги и класса магазина, которые я использовал для создания этого файла локального хранилища.

Класс книги: представляет книгу

class Book {
  constructor(title, author, ISBN) {
    this.title = title;
    this.author = author;
    this.ISBN = ISBN;
  }
}

Класс магазина: Хранение дескрипторов

class Store {
  static getBooks() {
    let books;
    if (localStorage.getItem("books") === null) {
      books = [];
    } else {
      books = JSON.parse(localStorage.getItem("books"));
    }

    return books;
  }

  static addBooks(book) {
    const books = Store.getBooks();

    books.push(book);
    localStorage.setItem("books", JSON.stringify(books));
  }

  static removeBook(isbn) {
    const books = Store.getBooks();

    books.forEach((book, index) => {
      if (book.ISBN === isbn) {
        books.splice(index, 1);
      }
    });
  }
}

1 Ответ

0 голосов
/ 11 апреля 2020

После удаления книги обновите коллекцию книг в локальном хранилище с помощью localStorage.setItem()

...