У меня есть массив типизированных объектов, которые передаются в мое представление с контроллера. Требование состоит в том, чтобы проверить, соответствует ли строковое значение любому из объектов типа строки AdminEmailAddress
внутри этого массива.Как проверить, существует ли значение свойства в массиве Javascript?
Что я пытался создать if condition
, чтобы проверить, соответствует ли строка currentUserEmail
любой электронной почте администратора в этом списке, используя indexOf
.
Но сценарий разбивает на если условии:
if (adminUserList.AdminEmailAddress.indexOf(currentUserEmail) > -1)
Я также поставил предупреждение на currentUserEmail
строки и adminUserList
массива, которые оба заполненных данные.
Содержимое adminUserList во время выполнения является следующим для справки:
var adminUserList = [{"AdminID":1,"AdminDisplayName":"brianb","AdminEmailAddress":"[email protected]"},{"AdminID":2,"AdminDisplayName":"wendy","AdminEmailAddress":"[email protected]"}];
Вопрос:
Как вы можете проверить, если строка соответствует значение свойства в массиве?
Код:
Тип списка, содержащий свойство AdminEmailAddress -
List type public class AdminUsers
{
public int AdminID { get; set; }
public string AdminDisplayName { get; set; }
public string AdminEmailAddress { get; set; }
}
Список передается из контроллера для просмотра:
List<AdminUsers> adminList = sqlConnection.GetAdminUsers();
ViewBag.AdminUserList = adminList;
скрипт, который содержит if condition
:
<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>