2017-03-01 5 views
0

Ich bin etwas neu in Javascript und vor kurzem mit ecmascript6 begonnen. Ich frage mich, wie man sowas in ES6 schreibt?"Diese" Referenz in Ecmscript im Vergleich zu Vanille JS

'/1/2/3'.split('/').slice(0, this.length-1).join("/"); 

Dies gibt "/ 1/2", da

this.length == '/1/2/3'.split('/') 

aber das funktioniert nicht leider in ECMAScript, da 'dies' nicht definiert ist. Gibt es eine Möglichkeit, auf ähnliche Weise zu schreiben?

Vielen Dank.

+0

ECMAScript ist eine * Spezifikation *, JavaScript ist eine * Implementierung * der Spezifikation. ES6 ist die 6. Version der Spezifikation. Was erwarten Sie von "this"? Bitte geben Sie weitere Informationen an. –

+0

?? Was erwarten Sie von diesem "ersten" Codebeispiel? Was es definitiv * nicht sein wird, ist ein Verweis auf die Saite ''/ 1/2/3''. – Pointy

+0

Spitze, zu ["", "1", "2", "3"], z. B. Ergebnis der vorherigen Funktionsplit – TheRedHerring42

Antwort

3

ECMAScript ist ein Standard. JavaScript ist die Implementierung dieses Standards von Mozilla.

Vielleicht möchten Sie folgendes versuchen:

var tmp = '/1/2/3'.split('/'); 
tmp.slice(0,tmp.length-1).join('/') // do somthing with me 
0

Wenn Sie nur das letzte Element des Arrays entfernen möchten, können Sie das, ohne dass eine Variable tmp tun können.

'/1/2/3'.split('/').slice(0,-1).join("/") 

slice nimmt einen negativen Index für die zweite (und ersten) Parameter

Als Negativindex end ein von dem Ende der Sequenz-Offset angibt. slice(2,-1) extrahiert das dritte Element durch das zweitletzte Element in der Sequenz.

Verwandte Themen