JSFiddle - React, Tailwind, and code Playground

JavaScript

function transpose(chord, increment)
{
    var cycle = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
    var el = chord.charAt(0);
    if(chord.length > 1 && chord.charAt(1) == '#')
    {
        el += "#";   
    }
    var ind = cycle.indexOf(el);
    var newInd = (ind + increment + cycle.length) % cycle.length;
    var newChord = cycle[newInd];
    return newChord + chord.substring(el.length);
}

console.log(transpose("E", 4));
console.log(transpose("Dsus7", 3));
console.log(transpose("B", 2));
console.log(transpose("C", -1));