Правильно ли реализован класс?

Прохожу по одному учебнику практические задания, но там нет решения чтобы свериться, что-то мне подсказывает что я мог не правильно понять задание или не добавить какие-то нужные проверки возможно? Мне лично что-то кажется метод get не очень хорошо реализован. Не могли бы вы проверить и подсказать?

Само задание: Класс Store в ООП в JavaScript Давайте реализуем класс Store, который будет представлять собой оболочку над локальным хранилищем и позволит легко сохранять и изменят в нем хранящиеся структуры данных.

Давайте посмотрим, как мы будем работать с описанным классом. Для начала создадим его объект:

let store = new Store; Теперь сохраним данные с заданным ключом:

store.set('key', {a: 1, b: 2, c: 3}); Получим эти данные по ключу:

let res = store.get('key'); console.log(res); // {a: 1, b: 2, c: 3} Получим часть сохраненной структуры, указав несколько ключей через точку:

let res = store.get('key.a'); console.log(res); // 1 Получим другую часть по сложному ключу:

let res = store.get('key.b'); console.log(res); // 2

  1. Реализуйте описанный класс.

  2. Сделайте метод, который будет изменять данные по заданному ключу.

  3. Сделайте метод, который будет удалять данные по заданному ключу.

Мой код:

class Store {
  set(key, value) {
    this.key = value;
  }
  get(key) {
    let obj = key.split('.')[0];
    let nested = key.split('.')[1];
    return this.obj[nested] ?? this.obj;
  }
  setData(key, value) {
    if (this.hasOwnProperty(key)) {
      this.key = value;  
    }
  }
  deleteData(key) {
    // this.key = {};
    delete this.key;
  }
}

let store1 = new Store;
store1.set('key', {a: 1, b: 2, c: 3});
store1.setData('key', 15);
store1.deleteData('key');

Ответы (2 шт):

Автор решения: Druny

Я нашел решение:

class Store {

    set(key, value) {
        value = JSON.stringify(value);
        localStorage.setItem(key, value);
    }

    get(key) {
        console.log( JSON.parse(localStorage.getItem(key)) );
    }
}

let store = new Store;

store.set('key', {a: 1, b: 2, c: 3});
store.get('key');

Остальное по аналогии.

→ Ссылка
Автор решения: alexWithoutBeard

Немного запаздало, но вдруг кому поможет. Минус в том, что трижды повторил одну и ту же манипуляцию с ключом, а этого надо избегать. Может кто поправит.

class Store {
  set(key, obj) {
    localStorage.setItem(key, JSON.stringify(obj));
  }
  get(key) {
    let keq = key.split(".");
    let keq0 = keq[0];
    let keq1 = keq[1];
    let res = JSON.parse(localStorage.getItem(keq0));
    if (keq1 == undefined) return res;
    else {
      return res[keq1];
    }
  }
  setItem(key, newVal) {
    
    let keq = key.split(".");
    let keq0 = keq[0];
    let keq1 = keq[1];
    let res = JSON.parse(localStorage.getItem(keq0));
    if (keq1 == undefined) return res;
    else {
      res[keq1] = newVal;
      localStorage.setItem("key", JSON.stringify(res));
    }
  }
  removeItem(key) {
    
    let keq = key.split(".");
    let keq0 = keq[0];
    let keq1 = keq[1];
    let res = JSON.parse(localStorage.getItem(keq0));
    if (keq1 == undefined) return res;
    else {
      delete res[keq1] 
      localStorage.setItem("key", JSON.stringify(res));
    }
  }
}

let store = new Store();

store.set("key", { a: 1, b: 2, c: 3 });
console.log(store.get("key.b"));
store.setItem("key.b", 4)
console.log(store.get("key.b"));
store.removeItem('key.b')

→ Ссылка