在Coldfusion列表中使用多个字符作为分隔符

时间:2016-01-29 10:30:33

标签: coldfusion coldfusion-9

我正在尝试使用多个字符作为ColdFusion列表中的分隔符,如{{1}}(逗号和空白),但它忽略了空白。

然后我尝试使用:

{{1}}

但是它也忽略了空白而没有空白的列表项目难以阅读。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

我认为你的方法存在根本性的缺陷。列表分隔符是数据的结构的一部分,而当您从列表中输出数据时,您也尝试将其用于“装饰”。虽然这通常很方便,但它有点混淆了两个想法。

应该做的是完全避免使用列表作为数据结构,因为它们有点废话。使用数组存储数据,然后将其作为一个单独的问题处理:编写一个渲染函数,在显示器中放置你想要的任何分隔符。

function displayArrayAsList(array, separator){
    var list = "";
    for (var element in array){
        list &= (len(list) ? separator : "");
        list &= element;
    }
    return list;
}
writeOutput(displayAsList(["tahi", "rua", "toru", "wha"], ", "));
  tahi,rua,toru,wha

答案 1 :(得分:1)

使用两步过程。第1步 - 创建逗号分隔列表。第2步

yourList = replace(yourList, ",", ", ", "all");

答案 2 :(得分:0)

使用ListAppend,您只能使用一个分隔符。正如文档所说的delimiters参数:

  

如果此参数包含多个字符,则ColdFusion仅使用第一个字符。

我不确定a[ idx ].title包含的内容或预期结果究竟是什么(如果你给出一个完整的例子会更好),但我认为这样的事情会做你想要的或至少让你开始:

<cfscript>
a = [
    {"title"="One"},
    {"title"="Two"},
    {"title"="Three"}
];
result = "";

for (el in a) {
    result &= el.title & ", ";
}

writeDump(result);
</cfscript>