Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion 如何(有选择地)将数组元素转换为值列表_Coldfusion_Coldfusion 8_Coldfusion 7 - Fatal编程技术网

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);