Я пытаюсь найти простой способ перебрать (перебрать) массив, чтобы найти все пропущенные числа в последовательности, массив будет выглядеть примерно так, как показано ниже.
var numArray = [0189459, 0189460, 0189461, 0189463, 0189465];
Для вышеприведенного массива мне нужно было бы 0189462
и 0189464
.
ОБНОВЛЕНИЕ: это точное решение, которое я использовал из ответа Суфиана.
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]
ОБНОВИТЬ
Здесь более аккуратная версия с использованием.reduce
var numArray = [0189459, 0189460, 0189461, 0189463, 0189466];
var mia = numArray.reduce(function(acc, cur, ind, arr) {
var diff = cur - arr[ind-1];
if (diff > 1) {
var i = 1;
while (i < diff) {
acc.push(arr[ind-1]+i);
i++;
}
}
return acc;
}, []);
console.log(mia);