JSFiddle - React, Tailwind, and code Playground
HTML
<h1>OPEN THE CONSOLE TO SEE THE MAGIC:)</h1>
JavaScript
var findNextId = function( arr ){
var sorted = arr.sort(function( a, b ){
return a - b;
});
if( _.isEmpty( sorted ) || ( _.isArray( sorted ) && sorted[0] !== 1 ) ){
return 1;
}
var maxValue = _.find( sorted, function( item, i, origArray ){
return item+1 !== origArray[ i+1 ];
});
return maxValue+1;
};
var testArrays = {
"8": [1,2,3,4,5,6,7],
"1": [],
"2": [1,3,4,5,6],
"100": _.range( 1, 100 )
};
_( testArrays ).each(function( value, key ){
var result = findNextId( value );
console[ result === +key ? "info" : "error"]( "Testing:\n\texpected: %d\n\tresult: %d\n", key, result );
});