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));
  }