Javascript 从与数组中的数组不同的数组中获取一个数字
我有一个数组,它可以有不同的数字或空Javascript 从与数组中的数组不同的数组中获取一个数字,javascript,Javascript,我有一个数组,它可以有不同的数字或空 [4,2] // here I need 0 [0,1,2] // here I need 3 [] // here I need 0 [1,2,4,7] // here I need 0 [0,5,3] // here I need 1 [0,1,2,3,5] // here I need 4 我需要得到一个与数组中的数字不同的数字,如果跳过某个数字,则得到它,如果这些数字按顺序排列,则需要得到最大的数字+1 这是我的解决方案,但我认为它不好 let
[4,2] // here I need 0
[0,1,2] // here I need 3
[] // here I need 0
[1,2,4,7] // here I need 0
[0,5,3] // here I need 1
[0,1,2,3,5] // here I need 4
我需要得到一个与数组中的数字不同的数字,如果跳过某个数字,则得到它,如果这些数字按顺序排列,则需要得到最大的数字+1
这是我的解决方案,但我认为它不好
let arr = [];
let arrSort = arr.sort();
let number = null;
for (let i = 0; i < arrSort.length; i++) {
if (arrSort.indexOf(i) === -1) {
number = i;
}
}
if (number === null) {
number = arrSort.length;
}
console.log(number)
让arr=[];
设arrSort=arr.sort();
设number=null;
for(设i=0;i
我已经尝试了几个选项,但它们都非常大,我想也许你会建议哪个线程是一个简单的选项?你可以使用
Array.prototype.reduce
来实现这一点
var getNextNumber=(arr)=>arr.length==0?0:arr.sort().reduce((acc,el,i)=>{
返回acc!=-1?acc:el!==i?i:i===arr.length-1?arr.length:-1;
}, -1);
log(getNextNumber([]);
log(getNextNumber([0,1,2,4,5]);
log(getNextNumber([0,1,2,3,4,5])代码>如果相等,可以为每个值存储零和增量
这种方法适用于短路,如果没有必要,不需要访问所有值
函数getNext(数组){
var值=0;
array.every(v=>v==value&&++value);
返回值;
}
console.log(getNext([4,2]);//0
log(getNext([0,1,2]);//3.
console.log(getNext([]);//0
log(getNext([1,2,4,7]);//0
log(getNext([0,5,3]);//1.
log(getNext([0,1,2,3,5]);//4
。作为控制台包装器{max height:100%!important;top:0;}
您尝试过解决这个问题吗?是的,但结果是有很多带有排序、循环等的代码。,我想我会被告知哪个线程是一个简单的选项,或者可能已经有一个现成的方法。请分享你做了什么,或者你可以向你解释为什么这个线程是关闭的,因为需要更多的关注?被问的问题非常清楚,OP只是问如何做一件事。唯一缺少的是一个代码示例,最坏情况下是“需要更多细节或清晰”,或者是一个否决票。如果问题在17分钟前结束,我如何在1分钟前发布我的答案。我认为这比我的好,因为我希望你只使用一种方法,而不是我有一大堆检查,谢谢