JSFiddle - React, Tailwind, and code Playground
by Tim Ko
JavaScript
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
// music app, playlist of 100 songs, shuffle this playlist randomly
// playlist: array
function shuffle(playlist) {
for (var i = 0, ln = playlist.length; i < ln; i++) {
var a = parseInt(ln * Math.random());
var b = parseInt(ln * Math.random());
swap(playlist, a, b);
}
}
function swap(playlist, a, b) {
var tmp = playlist[a];
playlist[a] = playlist[b];
playlist[b] = tmp;
}
function testShuffle() {
var originalPlaylist = ['song a', 'song b', 'song c', 'song d'];
var originalCopy1 = originalPlaylist;
var originalCopy2 = originalPlaylist;
var shuffledPlaylist1 = shuffle(shuffle(shuffle(originalCopy1)));
var shuffledPlaylist2 = shuffle(shuffle(shuffle(originalCopy2)));
var shuffledPlaylist3 = shuffle(shuffle(shuffle(originalCopy3)));
var differences1 = 0;
for (var i = 0, ln = originalPlaylist.length; i < ln; i++) {
if (originalCopy1[i] != shuffledPlaylist1[i]) {
differences1++;
}
}
var differences2 = 0;
for (var i = 0, ln = originalPlaylist.length; i < ln; i++) {
if (originalCopy2[i] != shuffledPlaylist2[i]) {
differences2++;
}
}
var differences3 = 0;
for (var i = 0, ln = originalPlaylist.length; i < ln; i++) {
if (shuffledPlaylist1[i] != shuffledPlaylist2[i]) {
differences3++;
}
}
// differences1 checks to make sure shuffle works
// differences1 should not be 0
// differences2 checks to make sure shuffle works
// differences2 should not be 0
// differences3 checks to make sure two shuffles don't produce same result
// differences3 should not be 0
}
String => Integer
get ()
insert ()
remove ()
var size = 1000;
var hashmap = Array(size);
{
var key;
var value;
}
function hash(key) {
key % size
}
this.insert = function(key, value) {
var...