You can try this:
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var trackSources = new Array();
trackSources[0] = "music/haken.mp3";
trackSources[1] = "music/Drive home.mp3";
trackSources[2] = "music/Luminol.mp3";
var trackDuration = new Array();
var audioPlaylist = document.createElement("audio");
audioPlaylist.preload = "metadata";
var i = 0;
function getDurations() {
console.log('getDurations called');
var arraySize = trackSources.length;
if(i < arraySize){
$(audioPlaylist)[0].src = trackSources[i];
$(audioPlaylist).on('loadedmetadata',function(){
trackDuration[i]= $(audioPlaylist)[0].duration;
console.log('Track '+i+' - duration: '+trackDuration[i]+' seconds');
i++;
$(this).off('loadedmetadata');
getDurations();
});
}
}
getDurations();
</script>
On a side note: you mentioned jQuery but your question code is plain JS.