Skip to content

Instantly share code, notes, and snippets.

@joshcanhelp
Created April 27, 2017 17:45
Show Gist options
  • Select an option

  • Save joshcanhelp/278091dd2f1a73792bcd3d1bb7b9af37 to your computer and use it in GitHub Desktop.

Select an option

Save joshcanhelp/278091dd2f1a73792bcd3d1bb7b9af37 to your computer and use it in GitHub Desktop.
/**
* Find next available server number
*
* @param servers
*
* @return {int}
*/
function next_server_number( servers ) {
'use strict';
if ( ! servers || ! servers.length ) {
return 1;
}
var availCount = 1;
var available;
servers = servers.sort( function ( a, b ) {
return a - b;
});
servers.some( function ( el ) {
if ( el != availCount ) {
return true;
}
availCount++;
});
return available ? available : availCount;
}
console.log( next_server_number( [5, 3, 1] ) );
console.log( next_server_number( [5, 4, 1, 2] ) );
console.log( next_server_number( [3, 2, 1] ) );
console.log( next_server_number( [2, 3] ) );
console.log( next_server_number( [] ) );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment