Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Функция выставления лайка (https://javascript.ru/forum/dom-window/79930-funkciya-vystavleniya-lajjka.html)

knoxville88 08.04.2020 20:07

Функция выставления лайка
 
:help: :help: :help:

Нужно дописать функцию, которая будет добавлять лайк указанному треку. Я вроде бы сделал, но похоже неправильно. Помогите.

const playlist = {
  name: 'Музыка для продуктивной работы',
  description: 'Правильно подобранная музыка помогает закончить работу быстрее.',
  tracks: []
};

function addTrack(name, artist) {
  playlist.tracks.push({ name, artist, isLiked: false });
}

function like(name) {
    const trackToLike = playlist.tracks.find(function (track) {
    return track.name == name;
    });

    /* дальше нужно инвертировать значение поля isLiked,
    вспомните про оператор логичекого отрицания — ! */
    trackToLike.isLiked = !false
}


addTrack('We Own The Sky', 'M83');
addTrack('Take Me To Church', 'Hozier');
addTrack('Elephant', 'Tame Impala');

like('We Own The Sky');

console.log(playlist.tracks);

рони 08.04.2020 20:08

knoxville88,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 08.04.2020 20:12

Цитата:

Сообщение от knoxville88
но похоже неправильно.

trackToLike.isLiked = !false нужно изменять прежнее значение, а не присваивать новое.

рони 08.04.2020 20:29

knoxville88,
сделайте промежуточный вариант.
в строке 15 сохраните прежнее значение, а потом добавьте его в строку 18.
когда придёт просветление, удалите строку 15.

knoxville88 08.04.2020 20:53

рони,
не приходит

рони 08.04.2020 20:57

knoxville88,
:( добавьте вместо false строка 18, то что вначале этой строки.

рони 08.04.2020 21:05

knoxville88,
trackToLike.isLiked = !trackToLike.isLiked;

knoxville88 08.04.2020 21:29

рони,
порой начинаю задумываться, не зря ли я начал изучать js :-?

спасибо за подсказку

рони 08.04.2020 21:43

knoxville88,
всё будет хорошо, было бы желание и настрой. :)


Часовой пояс GMT +3, время: 12:52.