2016-03-22 12 views
1

Für meine Aufgabe, ich habe ein ein Stück Code getan wie die Benutzerdaten zu holen,js: Mehrere Rückkehr in Ternary Operator

var data = userInfo.map(function (element) { 
    if (element[9].search("Active") != -1) { 
     return { 
      'LastName': Capitalizefirstletter(element[1]), 
      'FirstName': Capitalizefirstletter(element[2]), 
      'UserName': element[3], 
      'IsActiveUser': "True" 
     }; 
    } 
    else { 
     return { 
      'LastName': Capitalizefirstletter(element[1]), 
      'FirstName': Capitalizefirstletter(element[2]), 
      'UserName': element[3], 
      'IsActiveUser': "False" 
     }; 
    } 
} 

, die richtig funktioniert und ich kann alle Details aller sehen Benutzer in variablen Daten.

Während des Factoring wurde ich gebeten, dies mit Ternary Operator zu implementieren (Keine Ahnung, warum ich so ändern muss, obwohl das funktioniert gut). Also habe ich versucht, Code ausgeführt, aber nur NULL-Wert, den ich in variablen Daten sehen kann.

var data = userInfo.map(function (element) { 
    (element[9].search("Active")) != -1 ? { 
     'LastName': Capitalizefirstletter(element[1]), 
     'FirstName': Capitalizefirstletter(element[2]), 
     'UserName': element[3], 
     'IsActiveUser': "True" 
    } : { 
     'LastName': Capitalizefirstletter(element[1]), 
     'FirstName': Capitalizefirstletter(element[2]), 
     'UserName': element[3], 
     'IsActiveUser': "False" 
    }; 
} 

Kann mir jemand dabei helfen?

Vielen Dank im Voraus

+0

fehlt Ihnen das Schlüsselwort 'return' – cl3m

+0

Wo ist das Schlüsselwort' return'? –

+0

Ja, ich habe das "Return" verpasst –

Antwort

4

Da die Differenz nur eine Eigenschaft (IsActiveUser) ist, können Sie den Vergleich innerhalb des Objekts einzufügen.

var data = userInfo.map(function (element) { 
    return { 
     'LastName': Capitalizefirstletter(element[1]), 
     'FirstName': Capitalizefirstletter(element[2]), 
     'UserName': element[3], 
     'IsActiveUser': ~element[9].search("Active") ? "True": "False" // really a string? 
    }; 
}); 
+1

Das ist großartig! Das hat funktioniert. Vielen Dank. –

+1

Da die Anzahl der Zeilen zählt, gehe ich damit. –

+1

@Agnes Gru Steven, danke für den Versuch zu bearbeiten. Du warst Teil Richtig, da war eine Klammer falsch und eine fehlte. –

3

Ihre map Funktion muss bei jeder Iteration etwas zurück. Fügen Sie einfach die return Stichwort:

var data = userInfo.map(function (element) { 
    return (element[9].search("Active")) != -1 ? { 
     'LastName': Capitalizefirstletter(element[1]), 
     'FirstName': Capitalizefirstletter(element[2]), 
     'UserName': element[3], 
     'IsActiveUser': "True" 
    } : { 
     'LastName': Capitalizefirstletter(element[1]), 
     'FirstName': Capitalizefirstletter(element[2]), 
     'UserName': element[3], 
     'IsActiveUser': "False" 
    }; 
} 
+0

Danke, das hat funktioniert! :) –