Thank you to you Ed Bayiates.
Your lines of code helped me to solve a similar problem I had. I extended your code a little cuz there was a small detail missing I needed. Now it makes sure lowest unused number will never be "0".
let k = [1,3,4];
function getLowestFreeNumber(){
let lowestUnusedNumber = -1;
if (k.length === 0) {
lowestUnusedNumber = 1;
return lowestUnusedNumber;
}
k.sort((a, b) => a - b);
for (let i = 0; i < k.length; ++i) {
if (k[i] > 0 && k[i] != i + 1) {
lowestUnusedNumber = i + 1;
break;
}
}
if (lowestUnusedNumber == -1) {
lowestUnusedNumber = k[k.length - 1] + 1;
}
return lowestUnusedNumber;
}
console.log(getLowestFreeNumber())
I hope this few lines of code will help someone...