簡體   English   中英

javascript-coldfusion-使用清單

[英]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

這樣,如果列表很長,您就不必遍歷所有潛在屬性來找到匹配項。 看到它在運作中,這是一件小事:

http://jsfiddle.net/bittersweetryan/NeLfk/

我不喜歡Billy對此的回答,該函數內的變量已在全局范圍內聲明,並且有些復雜。 如果您的js中有ID列表作為字符串,則只需從用戶輸入中搜索您擁有的ID。

 var patt = new RegExp("(^|,)" + campaignId + "(,|$)"); var foundCampaign = campaignList.search(patt) != -1; 

暫無
暫無

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

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