Arrays - fehlende zahlen in einer Sequenz

Ich versuche zu finden, eine einfache Möglichkeit, um eine Schleife (Iteration), um über ein array zu finden, all die fehlenden zahlen in einer Sequenz, so wird das array sieht ein wenig wie die unten.

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

Für das array oben, die ich brauchen würde 0189462 und 0189464 abgemeldet.

UPDATE : das ist genau die Lösung, die ich verwendet von Soufiane Antwort.

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]

UPDATE

Hier ist ein genauerer version verwenden .reduzieren

JS:

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);

  • Sie iterieren über das array und vergleichen jeweils zwei Elemente.
InformationsquelleAutor Mark Walters | 2011-09-06
Schreibe einen Kommentar