Ich habe eine harte Zeit herauszufinden, wie man ein Element eines Arrays zu bewegen. Zum Beispiel, gegeben die folgenden:
var array = [ 'a', 'b', 'c', 'd', 'e'];
Wie kann ich eine Funktion schreiben, um das Element zu verschieben 'd'
links von 'b'
?
O 'a'
rechts von 'c'
?
Nach dem Verschieben der Elemente sollten die Indizes der übrigen Elemente aktualisiert werden. Die resultierende Anordnung wäre:
array = ['a', 'd', 'b', 'c', 'e']
Das scheint ziemlich einfach zu sein, aber ich kann es nicht begreifen.
0 Stimmen
ES6 verwenden
const changeValuePosition = (arr, init, target) => {[arr[init],arr[target]] = [arr[target],arr[init]]; return arr}
5 Stimmen
Das vertauscht einfach die Elemente bei
init
ytarget
.0 Stimmen
@user4945014 Es geht nicht nur um den Tausch. Wenn eine Vertauschung stattfindet, würde der OP array = ['a', 'd', 'c', 'b', 'e'] erhalten, was bedeuten würde, dass 'c' und 'b' in der falschen Reihenfolge wären. Ein Insert und Shift, wie er es sucht, hält 'b' und 'c' in der gleichen Reihenfolge.