Forem

PJ Mantoss
PJ Mantoss

Posted on

Returning part of a string data using map()

Hi good people! I'm trying to solve a JavaScript challenge, but my code is not working as expected
/*
PROBLEM: Write a function called getMainArtists which takes in an array of songs
and returns an array of the primary artists on the recordings.
If there's only one artist, that artist should be returned;
if there are featured artists, they should be ignored
(so only the artist to the left of "featuring" is kept.)
*/

//My Code Solution...

function getMainArtists(arr){
return arr.map(function(val){
if ((val.artist).includes("featuring")){
return null;
} else {
return val.artist;
}
})
}

getMainArtists(songs);

/*
The data I'm using can be found here https://github.com/PJMantoss/iterators2/blob/master/data.js
*/

PROBLEM STATEMENT: When I run getMainArtists(songs) it returns an array of artist names excluding names that contain 'featuring'. It's suppose to also return artist names that have 'featuring', but should only leave out all the words starting from 'featuring'. Any ideas how I can refactor my code to work? Thank you for your help

Top comments (6)

Collapse
 
diek profile image
diek

Here is one possible solution: repl.it/@DiegoMGar/getMainArtistss...

Collapse
 
pjmantoss profile image
PJ Mantoss

Thank you Dieg! It worked like magic. Thanks a lot.

Collapse
 
diek profile image
diek

I think it is self explanatory but if you need to talk about the code just tell me :)

Thread Thread
 
pjmantoss profile image
PJ Mantoss

Yes Dieg! I need a little more explanation. I understand the code up to .split("featuring")[0], but what does .trim() do? Thank you

Thread Thread
 
diek profile image
diek

developer.mozilla.org/es/docs/Web/...
I will take advantage of this question and recommend you the official documentation of MDN to search about Js implementations :)

The trim erases the blanks at the start and the end of the string, in this case, as we splitted it by "featuring", your [0] can have an space at the end and maybe make fail your test, if you had, this is the reason of the removal :)

Thread Thread
 
pjmantoss profile image
PJ Mantoss • Edited

OK. I understand now. Thank you Dieg. Also, thanks a lot for the link

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay