2016-06-22 8 views
0

Ich verwende Rails 4.2.3. Ich habe dieses JavascriptHaben Probleme, wenn Anweisung innerhalb der Schleife in coffeescript arbeiten

for (i = 0; i < listItems.length; i++) { 
    if (listItems[i] === window.location.pathname) 
     return i 
    } 

, die ich in Kaffee-Skript verwandeln möchte. Also habe ich versucht

if window.location.pathname in [listItems[i]] return i for i in [0...listItems.length] 

aber beim Fahren, erhalte ich die Fehlermeldung „Syntaxerror: [stdin]: 77: 3: unerwartet, wenn“. Was ist der richtige Weg, um dieses JS zu übersetzen?

+0

einen besonderen Grund Sie nicht wollen, zu sagen, [ 'listItems.indexOf (Fenster. location.pathname) '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)? –

Antwort

0

Erstens, um eine Rückgabe in einer if-Anweisung in derselben Zeile zu verwenden, sollten Sie das Schlüsselwort "then" verwenden. Zweitens scheint Ihre Code Logik aus. Was würden Sie wollen, ist so etwas wie

for i in [0...listItems.length] 
    return i if listItems[i] is window.location.pathname 

Es ist auch viel einfacher zu lesen als eine gewundene Linie :-)