2016-05-03 8 views
2

Ich frage mich, ob es möglich ist, eine bestimmte Anzahl von Elementen aus einem Javascript-Array zu ziehen und sie in ein neues Array einfügen, während eines der Elemente als Bezugspunkt?Wählen Sie Elemente aus einem Javascript Array mit einem der Elemente als Bezugspunkt

var firstarray = [ 
475387453, 
286235425, 
738264536, 
196792345, 
834532623, 
253463455, 
535273456]; 

Und dann habe ich eine Variable, die die Nummer 286235425 ist gleich:

Das ist, was ich versuche, dies zu tun, sich vorstellen, ich habe ein Array wie

var element = 286235425; 

Ich habe eine andere Variable, die gleich der Zahl 3 ist:

var thenumber = 3; 

Was ich tun möchte, ist durch das Array gehen, wählen Sie die 3 Elemen ts, die nach der Zahl "var element" stehen, und speichern sie in einem neuen Array namens "second array". So mit dem obigen Beispiel sollte das Ergebnis sein:

var secondarray = [ 
738264536, 
196792345, 
834532623]; 

Ich habe einige Fragen zu sehen, die über das Filtern Array-Elemente gesprochen, aber ich habe nicht in der Lage gewesen, etwas über die Auswahl von Elementen in der obigen Art und Weise zu finden. Ist so etwas überhaupt möglich? Ich weiß, dass es möglich ist, Elemente vom Anfang und Ende des Arrays zu trimmen, aber da das Array immer eine andere Länge hat, wenn die Funktion ausgeführt wird, ist diese Methode für dieses Problem nicht geeignet.

Jede Hilfe mit diesem würde wirklich geschätzt werden, Vielen Dank im Voraus!

Antwort

6

Sie können dies tun, mit splice und indexOf

var firstarray = [ 
 
    475387453, 
 
    286235425, 
 
    738264536, 
 
    196792345, 
 
    834532623, 
 
    253463455, 
 
    535273456 
 
], element = 286235425, thenumber = 3; 
 

 
var secondarray = firstarray.splice(firstarray.indexOf(element)+1, thenumber); 
 
console.log(secondarray)

+2

Ich war ungefähr die gleiche Lösung – Cuchu

+0

Same hier zu schreiben. Das funktioniert! – thepio

1

Nimm den Index, in dem element im Array ist indexOf mit:

var index = firstarray.indexOf(element); 

The indexOf() method ret kennzeichnet den ersten Index, an dem ein bestimmtes Element im Array gefunden werden kann, oder -1, wenn es nicht vorhanden ist.

Verwenden slice die Elemente aus dem Array aus dem nächsten Index auf den nächsten Index + thenumber

var secondarray = firstarray.slice(index + 1, index + 1 + thenumber); 

The slice() method liefert eine flache Kopie eines Teils eines Arrays in ein neues Array-Objekt zu greifen .

DEMO

Verwandte Themen