Still new to Javascript.. still learning..
the task is to change the getEpisodeInfo() method of the PodcastEpisode class, so that it'll return the episode duration in a more commonly accepted format.
function getEpisodeInfo(){
return `${this.artist}. "${this.title}" - ${this.guest} ${this.getFormattedDuration()}`;
}
class PodcastEpisode {
constructor(title, artist, guest,duration){
this.title = title;
this.artist = artist;
this.guest = guest;
this.duration = duration;
this.getEpisodeInfo =getEpisodeInfo
}
like(){
this.isLiked = this.isLiked;
}
getFormattedDuration() {
const minutes = Math.floor(this.duration / 60); // the total number of minutes
const seconds = this.duration % 60; // the remainder of the division by 60
return `${minutes}:${seconds > 9 ? seconds : "0" seconds}`;
}
}
CodePudding user response:
I guess you're just trying to move the getEpisodeInfo
function into the Class.
But, you can't use the function
keyword inside the class to define a method.
Here's the full code:
class PodcastEpisode {
constructor(title, artist, guest, duration) {
this.title = title;
this.artist = artist;
this.guest = guest;
this.duration = duration;
}
like() {
this.isLiked = true;
}
getFormattedDuration() {
const minutes = Math.floor(this.duration / 60); // the total number of minutes
const seconds = this.duration % 60; // the remainder of the division by 60
return `${minutes}:${seconds > 9 ? seconds : "0" seconds}`;
}
getEpisodeInfo() {
return `${this.artist}. "${this.title}" - ${this.guest} ${this.getFormattedDuration()}`;
}
}
Now you can create a PodcastEpisode Object and call podcast.getEpisodeInfo().
Let me know if that's not what you're trying to do.