![](/img/trans.png)
[英]Passing Coldfusion Form Values to javascript and CFC , code not working
[英]javascript - coldfusion - working with a list
這對某人可能很容易。
我正在通過JSON返回javascript變量的campaignID(12,45,66)列表
var campaignList = res.DATA.CAMPAIGNS
現在,給定在URL中傳遞的指定campaignID
var campaignId ='<cfoutput>#url.campaignID#</cfoutput>'
我想檢查返回的列表是否包含此campaignID
任何幫助,不勝感激。
有很多方法可以做到,但是我喜歡漂亮的數據結構,所以...
用逗號分割列表,然后遍歷列表,尋找值:
function campaignExists(campaignList,campaignId) {
aCampaignList = campaignList.split(',');
for (i=0;i<aCampaignList.length;i++) {
if (aCampaignList[i]==campaignId)
return true;
}
return false;
}
由於Array.indexOf
可悲的不是跨瀏覽器,因此您正在尋找類似的東西:
// assume there is no match
var match_found = false;
// iterate over the campaign list looking for a match,
// set "match_found" to true if we find one
for (var i = 0; i < campaignList.length; i += 1) {
if (parseInt(campaignList[i]) === parseInt(campaignId)) {
match_found = true;
break;
}
}
如果您需要重復執行此操作,請將其包裝在一個函數中
這里有一些“開箱即用”的解決方案。 您可以為屬性ID創建一個結構,該結構將傳遞給json searilizer,其鍵和值相同。 然后,您可以測試結構的hasOwnProperty。 例如:
var campaignIDs = {12 : 12, 45 : 45, 66 : 66};
campaignIDs.hasOwnProperty("12"); //true
campaignIDs.hasOwnProperty("32"); //false
這樣,如果列表很長,您就不必遍歷所有潛在屬性來找到匹配項。 看到它在運作中,這是一件小事:
我不喜歡Billy對此的回答,該函數內的變量已在全局范圍內聲明,並且有些復雜。 如果您的js中有ID列表作為字符串,則只需從用戶輸入中搜索您擁有的ID。
var patt = new RegExp("(^|,)" + campaignId + "(,|$)"); var foundCampaign = campaignList.search(patt) != -1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.