Как вывести текст из одной строки в формате «артист — песня» с помощью JS без багов?
Можно вместо split("-") сделать split(" - "), но, вообще, лучше использовать JSON, чтобы название трека и артист были в отдельных полях. Это будет надёжнее работать, потому что входные данные могут быть непредсказуемыми. Например, название артиста будет содержать «–» с пробелами, и всё опять сломается.
Если на сервере можно получить нужные поля отдельно, то отправляйте с сервера нормальный объект в JSON и не извращайтесь с резкой строк.