簡體   English   中英

檢查Javascript數組中是否存在標簽

[英]Check if label exists in Javascript array

我有一個ajax jquery函數,該數組用包含標簽和值的每個元素填充數組:

    var accountOptions = new Array();
    $.ajax({
            type: "GET",
            url: apiUrl+"/Accounts/GetDropdown",
            async: false,
            success:
            function (response) {
                    $.each(response.Data, function (i, item) {
                        accountOptions.push({ label: item.Number, value: item.Id })
                    });
            }
    });

此函數工作正常,但我需要檢查此數組中是否存在標簽,並且找不到執行該操作的方法。 我嘗試了此函數,但它檢查數組以查看是否存在值而不是標簽。

if ($.inArray(account, accountOptions) == -1)
    {
        $(this).addClass("validation-error");
        alert("This account does not exist.");
    }

任何幫助表示贊賞。

您可以改用jquery grep ,它使用您設置的任何過濾器創建一個新數組。 如果長度> 0,則存在。

 var array=[{'label':'one','value':'two'},{'label':'other','value':'more'},{'label':'foo','value':'bar'}]; var matches=$.grep(array,function(n){ return n.label=='foo'; }); if(matches.length==0) alert('this account does not exist'); else alert('this account exists'); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

您可以執行以下操作:

https://jsfiddle.net/uwhgooeg/

var accountOptions = [{
    label: "account",
    value: 0
},
{                
    label: "label 2",
    value: 1
}
];

var account = "account";
for(var i = 0; i < accountOptions.length; i++){
    if(accountOptions[i].label == account)
    {
        $(this).addClass("validation-error");
        alert("This account does not exist.");
    }
}

因為您有對象數組,所以我可能會快速遍歷一下以查看它是否存在,然后抓住它。

function labelExists(lblval) {
  for(i=0; i<accountOptions.length; i++) {
    if (accountOptions[i].value == lblval) { 
      return accountOptions[i];
    }
  }
  return false;
}

如果數據集太大,這可能不是最好的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM