The problem with the swap function is that it loses the value at the first index, as soon as it gets overwritten by the value at the second index. This happens in the first statement. To fix it, you need a helper variable.
First you're going to "park" the index at the first index in that helper variable, then you can safely overwrite it with the value at the second index. Then finally you can write the parked value to the second index:
var swap = function(array, firstIndex, secondIndex) {
let helper = array[firstIndex];
array[firstIndex] = array[secondIndex];
array[secondIndex] = helper;
};
I hope this makes sense to you.