Coldfusion 如何(有选择地)将数组元素转换为值列表
给定下面的数组,如何将其转换为简单的值列表Coldfusion 如何(有选择地)将数组元素转换为值列表,coldfusion,coldfusion-8,coldfusion-7,Coldfusion,Coldfusion 8,Coldfusion 7,给定下面的数组,如何将其转换为简单的值列表 <cfdump var="#arguments.ServiceTextArray#"> 具体来说,我如何提取带有yes后缀的值并生成这样的列表 3584,3642,3643 提前谢谢。这有帮助吗?总有比这更好的解决方案 var list = ""; for (item in array) if (ListLast(item, "_")) list = listAppend(list, val(item));
<cfdump var="#arguments.ServiceTextArray#">
具体来说,我如何提取带有yes后缀的值并生成这样的列表
3584,3642,3643
提前谢谢。这有帮助吗?总有比这更好的解决方案
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>
这在一定程度上是对Henry答案的延伸,但应该正是您所追求的:
<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);
仅使用CF 10:
filteredArray = _.filter(arguments.ServiceTextArray, function(val) {
return (val contains 'yes');
});
resultArray = _.map(filteredArray, function(val) {
return left(val, 4);
});
list = arrayToList(resultArray);
我创建了这个库,顺便说一句,我想他们只想要yes值。@Henry lol,聪明,但我想如果我在维护时遇到这些代码,我会有点沮丧。@JakeFeasel真的吗?这就像x==真,有点不必要。但是,如果listRest可以是yes或no以外的值,那么==yes将是一个更好的选择。它有点像这样,但是你必须承认,期望listRest只弹出这样一个布尔值有点不寻常,而不是简单变量作为布尔值计算的不寻常经历。布尔值即将出现的一个重要线索是:这行以If开头,不要忘了用逗号分隔列表元素。此外,listAppend比字符串连接简单ie&FWIW:如果只需要数字部分,只需在循环中拆分值:ie myList=listAppendmyList,listFirstmyArray[index],“\uu”我得到的结果如下所示:3584是3642\u是3643\u是但如何转换其仅列表的数字..358436423643很好。如果DG3解决了您的问题,请不要忘记将其作为答案标记。很好。我不知道你能用CF10做到这一点。顺便问一下,那是你的图书馆吗?如果是这样的话,您可能想在回复中添加标准的从属关系免责声明。感谢您提供的信息,我已经添加了免责声明。希望你觉得这个图书馆有用!
filteredArray = _.filter(arguments.ServiceTextArray, function(val) {
return (val contains 'yes');
});
resultArray = _.map(filteredArray, function(val) {
return left(val, 4);
});
list = arrayToList(resultArray);