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