JSFiddle - React, Tailwind, and code Playground
JavaScript
var segments = [
{label: 'First', separatorUsed: true},
{label: 'Second', separatorUsed: false},
{label: 'Third', separatorUsed: true},
{label: 'Forth', separatorUsed: true}
];
const buildSeparatedStr = (sep) => (p, c, i, a) => {
const separator = !c.separatorUsed || i === a.length - 1 ? ' ' : sep;
return `${p}${c.label}${separator}`;
}
const getSegmentsLabel = (arr, fn) => arr.reduce(fn, '');
const str = getSegmentsLabel(segments, buildSeparatedStr('-'));
console.log(str);