Один из подходов, который вы можете использовать, - это обновить определенную переменную флага в том же месте, где вы обновляете заголовок, и затем выполнить соответствующий расчет, подобный следующему:
// First conversion function
function convertMilesToKilometers(){
var miles = parseInt(document.getElementById("distance").value);
var kilometers = (miles * 1.609344);
var answer = document.createElement("H2");
answer.innerHTML = `${miles} miles converts to ${kilometers.toFixed(3)} kilometers`;
document.getElementById("answer").appendChild(answer);
if (isNaN(kilometers)){
answer.innerHTML = `Enter a number you clown!`;
}
}
// Second conversion function
function convertKilometersToMiles(){
var miles = (kilometers * 0.621371);
var kilometers = parseInt(document.getElementById("distance").value);
var answer = document.createElement("H2");
answer.innerHTML = `${kilometers} kilometers converts to ${miles.toFixed(3)} miles`;
document.getElementById("answer").appendChild(answer);
if (isNaN(miles)){
answer.innerHTML = `Enter a number you clown!`;
}
}
// Flag variable
var isMiToKm = false;
// Button event handler
function convert() {
if(isMiToKm) convertMilesToKilometers();
else convertKilometersToMiles();
}
var header = document.querySelector("H1");
var directions = document.querySelector("P");
document.addEventListener('keydown', function(event){
var keyPressed = event.which;
switch(keyPressed){
case 77:header.innerHTML = "MILES TO KILOMETERS CONVERTER";
directions.innerHTML = "Type in a number of miles and click the button to convert the distance to kilometers.";
isMiToKm = true; // Set Mi->Km mode
break;
case 75:header.innerHTML = "KILOMETERS TO MILES CONVERTER";
directions.innerHTML = "Type in a number of kilometers and click the button to convert the distance to miles.";
isMiToKm = false; // Set Km->Mi mode
break;
//default: alert("Please press K or M for conversion");
}
});
(код может использовать некоторые дальнейшее улучшение, но, надеюсь, концепция ясна)