0

以下の配列が与えられた場合、それを単純な値のリストに変換するにはどうすればよいですか?

<cfdump var="#arguments.ServiceTextArray#">

配列要素:

   1 3567_no 
   2 3584_yes 
   3 3642_yes 
   4 3643_yes 
   5 3644_no 
   6 3645_no 
   7 3646_no 

具体的には、「はい」サフィックスで値を抽出し、このようなリストを作成するにはどうすればよいですか?

3584,3642,3643

前もって感謝します。

4

4 に答える 4

2

これは部分的に Henry answer の拡張ですが、まさにあなたの後にあるはずです:

<cfscript>
    tmpArray = ['567_no','584_yes','3642_yes','3643_yes','3644_no','3645_no','3646_no'];
    list = "";
    for (item in tmpArray)
        if (listLast(item, "_") == "yes")
            list = listAppend(list, listFirst(item, "_"));

writeDump(list);

于 2012-06-18T22:12:09.573 に答える
2

これは役に立ちますか?これよりも良い解決策が常にあります。

<cfset myList = "">
<cfloop from="1" to="#Arraylen(myArray)#" index="index">

    <Cfif right(myArray[index],3) EQ "yes">
        <cfset myList = listAppend(myList, listFirst(myArray[index], '_'))>
    </Cfif>
</cfloop>

<cfoutput>#myList#</cfoutput>
于 2012-06-18T20:37:28.553 に答える
2
var list = "";

for (item in array)
    if (ListLast(item, "_"))
        list = listAppend(list, val(item));
于 2012-06-18T20:36:32.650 に答える
1

Underscore.cfcライブラリの使用(CF 10のみ):

filteredArray = _.filter(arguments.ServiceTextArray, function(val) {
    return (val contains 'yes');
});

resultArray = _.map(filteredArray, function(val) {
    return left(val, 4);
});

list = arrayToList(resultArray);

(私はこのライブラリを作成しました、ところで)

于 2012-07-01T08:45:53.280 に答える