如果我想构建一个数组,那么Array的元素是1到N + 1, 并找出缺少的数字?
例如:[1,3,4,5],应打印2
示例:
function solution(arr) {
// find the missing number and return
}
console.log(solution([1,3,4,5])); // 2
答案 0 :(得分:0)
var size = arr.length;
var last_num = arr[length-1];
var missing = "";
for (var i = 1; i<last_num; i++){
if (arr.indexOf(i)<0){
missing += i;
}
}
console.log(missing);
答案 1 :(得分:0)
var array = [1,3,4,5];
for (var i=0; i<=array.length-1; i++) {
if (i+1 != array[i]) {
return i;
}
}
答案 2 :(得分:0)
像这样的东西)所以simlpe任务 - 我认为你可以自己做但是)))
var solution = function (array) {
array.map(function (item,i) {
if((array[i+1] - array[i]) > 1)
console.log(array[i] + 1) })
};
答案 3 :(得分:0)
如果您正在使用lodash或者可以将其包含在您的项目中,则以下内容将有效:
function miss_val(k){
var n=k.length+1;
var sum=n*(n+1)/2;
var sum2=k.reduce(function(a,b){return(a+b)});
var miss=sum-sum2;
console.log(miss);
}
miss_val([1,2,3,5]);
答案 4 :(得分:0)
你可以这样做
{{1}}
答案 5 :(得分:0)
我建议使用Array#reduce()
,因为它可以在数组中返回可变数量的缺失项。
function missing(r, a, i, aa) {
var n = aa[i - 1] + 1;
while (n < a) {
r.push(n++);
}
return r;
}
document.write('<pre>' + JSON.stringify([1, 3, 4, 5].reduce(missing, []), 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify([0, 5].reduce(missing, []), 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify([1, 2, 3].reduce(missing, []), 0, 4) + '</pre>');