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 );
});