给定下面的数组,如何将其转换为简单的值列表?
<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
具体来说,如何提取带有“yes”后缀的值并生成这样的列表?
3584,3642,3643
提前致谢。
给定下面的数组,如何将其转换为简单的值列表?
<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
具体来说,如何提取带有“yes”后缀的值并生成这样的列表?
3584,3642,3643
提前致谢。
这部分是对亨利回答的扩展,但应该正是您所追求的:
<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);
var list = "";
for (item in array)
if (ListLast(item, "_"))
list = listAppend(list, val(item));
这会有帮助吗?总会有比这更好的解决方案。
<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>
使用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);
(我创建了这个库,顺便说一句)