JSFiddle - React, Tailwind, and code Playground
by alexb
JavaScript
artists = [{name: '1', nameAlt: '1alt'}, {name: '2', nameAlt: '2alt'}, {name: null, nameAlt: '3alt'}, {name: '4', nameAlt: null}];
function getArtists(artists) {
const result = [];
artists.map((artist) => {
const jointName = (artist.name ? artist.name : '') + (artist.nameAlt ? (artist.name ? ' (' : '') + artist.nameAlt + (artist.name ? ')' : '') : '');
if (jointName !== '') result.push(jointName);
});
return result.join(', ');
}
function formatName({ name, nameAlt }) {
if (name && nameAlt) {
return `${name} (${nameAlt})`
}
return name || nameAlt;
}
console.log(artists.map(formatName).join(', '))
console.log(getArtists(artists));
// Output:
// 1 (1alt), 2 (2alt), 3alt, 4
{
const getArtists = artists => artists
.filter(({ name, nameAlt }) => name || nameAlt)
.map(({ name, nameAlt }) => (name + (nameAlt ? `(${nameAlt})` : '')) || nameAlt)
.join(', ')
console.log(getArtists(artists));
}