массивы - найдите пропущенные номера в последовательности

Я пытаюсь найти простой способ петли (итерации) над массивом, чтобы найти все недостающие номера в последовательности, массив будет выглядеть немного похоже Тот один ниже.

var numarmay = [0189459, 0189460, 0189461, 0189463, 0189465];

Для массива выше мне потребуется 0189462 и 0189464 .

Обновление : Это точное решение, которое я использовал из ответа Soufiane.

var numArray = [0189459, 0189460, 0189461, 0189463, 0189465];
var mia= [];

    for(var i = 1; i < numArray.length; i++) 
    {     
        if(numArray[i] - numArray[i-1] != 1) 
        {         
            var x = numArray[i] - numArray[i-1];
            var j = 1;
            while (j<x)
            {
                mia.push(numArray[i-1]+j);
                j++;
            }
        }
    }
alert(mia) // returns [0189462, 0189464]

Обновление

Вот версия Neater с использованием .RECUCE

 var numarmay = [0189459, 0189460, 0189461, 0189463, 0189466];  var mia = numarray.reduce (функция (ACC, Cur, ind, arr) {var diff = cur - arm [ind-1]; если (diff> 1) {var i = 1; пока (i 
23
задан Mark Walters 21 June 2018 в 07:51
поделиться

1 ответ

const findMissing = (numarr) => {
  for(let i = 1; i <= numarr.length; i++) {
      if(i - numarr[i-1] !== 0) {
        console.log('found it', i)
        break;
      } else if(i === numarr.length) console.log('found it', numarr.length + 1)
    }
  };

console.log(findMissing([1,2,3,4,5,6,7,8,9,10,11,12,13,14]))
1
ответ дан 29 November 2019 в 01:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: