Ich habe ein Array von typisierten Objekten, die von einem Controller in meine Ansicht übergeben werden. Die Anforderung besteht darin, zu überprüfen, ob ein Zeichenfolgenwert mit einem der Zeichenfolgenobjekte AdminEmailAddress
in diesem Array übereinstimmt.Wie überprüft man, ob ein Eigenschaftswert in einem Javascript-Array existiert?
Was ich versucht habe, ist ein if condition
zu erstellen, um zu überprüfen, ob die Zeichenfolge currentUserEmail
mit einer der Admin-E-Mails in dieser Liste übereinstimmt, mit indexOf
.
Aber das Skript bricht auf der, wenn die Bedingung:
if (adminUserList.AdminEmailAddress.indexOf(currentUserEmail) > -1)
Ich habe auch eine Warnung auf das currentUserEmail
String und das adminUserList
Array, das mit Daten sowohl bestückt ist.
Der Inhalt des adminUserList während der Laufzeit folgt Referenz als:
var adminUserList = [{"AdminID":1,"AdminDisplayName":"brianb","AdminEmailAddress":"[email protected]"},{"AdminID":2,"AdminDisplayName":"wendy","AdminEmailAddress":"[email protected]"}];
Frage:
Wie kann man überprüfen, ob eine Zeichenfolge, die einen Eigenschaftswert innerhalb eines Arrays entspricht?
Code:
Liste Typ die AdminEmailAddress Eigenschaft enthält -
List type public class AdminUsers
{
public int AdminID { get; set; }
public string AdminDisplayName { get; set; }
public string AdminEmailAddress { get; set; }
}
Liste in von Controller-übergeben Ansicht:
List<AdminUsers> adminList = sqlConnection.GetAdminUsers();
ViewBag.AdminUserList = adminList;
Skript, das die if condition
enthält:
<script>
var currentUserEmail = '@ViewBag.CurrUserEmail';
var adminUserList = @Html.Raw(Json.Encode(ViewBag.AdminUserList));
$(document).ready(function() {
var historyTable = $('#table').DataTable({
"order": [[6, "desc"]]
});
if (adminUserList.AdminEmailAddress.indexOf(currentUserEmail) > -1)
{
historyTable.columns([9]).visible(false);
}
});
</script>