2016-11-27 4 views
1

Ich möchte ein Array mit ES6 neu anordnen. Zum Beispiel:Array in Javascript mit ES6 neu anordnen

[1,2,3,4,5,6,7,8,9] 

Wenn meine Startnummer 5 ist, möchte ich ein neues Array wie folgt:

[5,6,7,8,9,1,2,3,4]. 

ich in der Lage bin dies durch Schleifen zu fixieren, zu vergleichen, schneiden, das Ding wieder Aufkleben zusammen.

Ich habe jedoch ein paar interessante Array-Funktionen mit ES6 gelesen, die dies erleichtern könnten. Aber ich habe Schwierigkeiten, dies in die Praxis umzusetzen.

+0

auch sein, wählen Sie die 5. (Index 4) Stelle in der Anordnung, weil Ihre Startnummer 5 ist oder weil es die Stelle wo 5 passiert ist? Anders ausgedrückt, was sollte diese Methode mit einer Startnummer von 5 und einer Eingabe [1,2,5,3,4,6,7,8,9] machen? –

+1

Was hast du gelesen und was scheint das Problem zu sein? – MikeJRamsey56

Antwort

1

Es kann

let newArr = [...arr.slice(arr.indexOf(5)), ...arr.slice(0, arr.indexOf(5))] 

oder

let newArr = [...arr]; 
newArr = [...newArr.splice(arr.indexOf(5)), ...newArr]; 
0

Also ich bin mir nicht sicher, dass Sie daran gedacht haben, aber wenn Sie meinen, wir fangen bei 5 an, weil sein Wert (nicht Position, wenn Sie bei 1 anfangen) 5 ist, sollte das Folgende funktionieren (wenn auch vielleicht nicht die neumodische Idee, die Sie wollten).

var startArr =[1,2,3,4,5,6,7,8,9]; 
var startIndex=startArr.indexOf(5);//finds 5, if you meant just because it is the 5th. say startArr=5-1 
if (startIndex!=-1){ 
    var a1=startArr.slice(startIndex); 
    var a3=a1.concat(startArr.slice(0,startIndex)); 
    //a3 now contains what you wished for, you may console.log(a3) to see 
}