私はコントローラから私のビューに渡される型付きオブジェクトの配列を持っています。文字列値が配列内のAdminEmailAddress
文字列型オブジェクトのいずれかと一致するかどうかを確認する必要があります。Javascript配列内にプロパティ値が存在するかどうかをチェックする方法は?
を使用して、文字列currentUserEmail
がそのリスト内の管理用メールと一致するかどうかを確認するためにif condition
を作成しています。
しかし、このスクリプトは、ifの条件に壊れる:
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>