You'll have to build your expression by checking the values for each of the attributes. This example assumes that if the ADT is empty, its speed will also be empty. If not, you'll have to check for those separately. It also uses template literals.
var output;
if (!IsEmpty($feature.North)) output += `${$feature.North} NB ${$feature.eightyfifth} MPH\n`;
if (!IsEmpty($feature.South)) output += `${$feature.South} SB ${$feature.eightyfift} MPH\n`;
if (!IsEmpty($feature.East)) output += `${$feature.East} EB ${$feature.eighty} MPH\n`;
if (!IsEmpty($feature.West)) output += `${$feature.West} WB ${$feature.eightfive} MPH\n`;
return Left(output, Count(output) - 1); //this removes the last carriage return