Как удалить элемент объекта по ключу?

Здравствуйте
Пытаюсь удалить элемент объекта по ключу
Мой код - jsfiddle

В консоли все выводиться вроде верно
Подскажите, где я допустил ошибку?
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Проблема у вас в том, что вы после удаления снова читаете значения из инпутов добавления и заново добавляете этот ключ. Самое простое - чистить инпуты после добавления:
function renderObj(e) {
    e.preventDefault();
    let str = '';
    let inputKey = document.querySelector('.input-key').value;
    let inputValue = document.querySelector('.input-val').value;

    if (inputKey !== '' && inputValue !== '') {
      obj[inputKey] = inputValue;

      for (let key in obj) {
        str += `Ключ: ${key}, Значение: ${obj[key]} <br>`
      }
    }
    output.innerHTML = str;    
    
    document.querySelector('.input-key').value = '';
    document.querySelector('.input-val').value = '';
  }


Но вообще, конечно, ваш код нужно переделать. Должно быть три функции - одна на добавление ключа в объект, другая на удаление и третья на рендеринг объекта. Сейчас у вас первая и третья смешаны в одну, отсюда и проблемы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы