2016-12-11 5 views
-1

ich etwas Hilfe über Arrays benötigen: Ich habe ein Array wie:Array bewegt sich in Javascript

a,b,0,0,0,0 

I some wollen diese bekommen:

0,0,0,0,a,b 

Die Länge haben konfigurierbar und standardmäßig sein Wert auf 0. Grüße.

+3

umkehren oder umziehen? 'a' und' b' sind nicht vertauscht. –

+0

Verschieben tut mir leid, ich bearbeite – HyrozenT

+0

Was haben * Sie * bisher versucht? – Li357

Antwort

0

Sie könnten nach Null suchen, nehmen Sie den Index als Länge für das Spleißen und concat den Rest mit dem gespleißten Array.

['a', 'b', 0, 0, 0, 0]  index of first 0 with indexOf 
     ^     
['a', 'b'][0, 0, 0, 0]  splice array and get two arrays 

[0, 0, 0, 0] + ['a', 'b']  concat both arrays in different order 

var array = ['a', 'b', 0, 0, 0, 0]; 
 

 
array = array.concat(array.splice(0, array.indexOf(0))); 
 
console.log(array);

+0

Das war es, vielen Dank. Ich muss mehr über diese Spleißmethode nachdenken! – HyrozenT

-2

Man könnte so etwas wie dieses, mit einem einfachen "custom" Komparator verwenden:

var values = [0, "b", 0, 0, "a", 0]; 
values.sort(function(a, b){ 
if(b==0) 
    return true 
}); 

Sie können mit dem benutzerdefinierten Komparator spielen, etwas zu haben, die Sie mögen .

+0

Ich würde gerne verstehen, warum diese Antwort nicht sinnvoll ist .... – emish89