Ich würde zweite die native unshift
Methode - obwohl sie die Länge des resultierenden Array zurück, nicht das Array selbst, so kann man nicht Kette Anrufe, wie Ihr Beispiel zeigt.
Als Spaß Alternative CoffeeScript's ranges feature allows splicing, die verwendet werden könnten, um einen Wert zu einem vorhandenen Array vorangestellt wird:
array = [ 1, 2, 3 ]
array[..0] = [ 4, array[0] ]
console.log array # [ 4, 1, 2, 3 ]
Genauer gesagt, entfernt es das erste Element des Arrays und fügt die beiden Elemente auf der rechten Seite - Handseite der Aufgabe (Ihr gewünschter Vorgänger und der ursprüngliche 0-Wert).
Wir sogar Kette, indem sie sie in Klammern Verpackung und in den Array-Referenzierung Variable bringen:
array = [ 1, 2, 3 ]
((array[..0] = [ 4, array[0] ]) and array).unshift(5)
console.log array # [ 5, 4, 1, 2, 3 ]
JavaScript unshift hat, vielleicht auch Coffee hat? –
Nein, aber ich habe zwei Vorschläge (zusätzlich zur Aufhebung der Verschiebung), um das gleiche Ziel zu erreichen: 1. Aufrufe von '.concat 'wie in' [2] .concat ([3]). Concat ([4]) => [2,3,4] '** oder ** wenn du in einer Umgebung verwendest, die es unterstützt, kannst du etwas wie das folgende rohe JavaScript mit Backticks in dein coffeescript einfügen (nur ES 6)' var list = [2,3,4 ]; var ints = [1, ... liste]; '. Ich denke nicht, dass der Spread-Operator von coffeescript so funktionieren wird. –
Wenn Sie nur eine Sprache benötigen, die zu Javascript kompiliert und ziemlich leicht ist, gibt es immer [purescript] (http://www.purescript.org), das [Listen] hat (https://github.com/purescript/purescript -listen), beachten Sie, dass außer Haskell es strenge Semantik hat – epsilonhalbe