loading...

Returning part of a string data using map()

pjmantoss profile image PJ Mantoss ・1 min read

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

Discussion

pic
Editor guide
Collapse
diegomgar profile image
Dieg Oto

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

Collapse
pjmantoss profile image
PJ Mantoss Author

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

Collapse
diegomgar profile image
Dieg Oto

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 Author

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
diegomgar profile image
Dieg Oto

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 Author

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