Дан объект JSON описывающий часть музыкальной коллекции состоящий из альбомов. Каждый альбом имеет уникальный номер в качестве ключа и несколько свойств. Не все альбомы содержат всю информацию.
Напишите функцию, которая принимает в качестве параметров: id
- уникальный номер альбома (например, 2548), prop
- имя свойства (например, "artist"
или "tracks"
) и value
- новое значение свойства (например, "Addicted to Love"
) для изменения данных внутри коллекции.
Если prop
содержит значение не равное "tracks"
и value
тоже содержит значение (не пустую строку ""
), то установите новое значение value
свойству с именем prop
в альбоме.
Несколько правил для обработки случаев, когда некоторые данные отсутствуют:
Если prop
содержит значение "tracks"
, но в альбоме отсутствует свойство "tracks"
, то создайте пустой массив, присвойте этот массив отсутствующему свойству в альбоме и добавьте в него новое значение.
Если prop
содержит значение "tracks"
и value
тоже содержит значение (не пустую строку ""
), добавьте value
в конец существующего массива tracks
.
Если value
содержит пустую строку (""
), удалите переданное свойство prop
из альбома.
Созданная вами функция должна всегда возвращать объект коллекции.
Подсказки
Используйте скобочную нотацию
, когда получаете доступ к свойству объекта при помощи переменной.
О методе push()
для добавления одного или более элементов в конец массива можете почитать на сайте Mozilla Developer Network.
Чтобы вспомнить о JavaScript Object Notation (JSON) обратитесь к заданию Работа со сложными объектами.