格式化结构中的所有值

时间:2011-11-02 12:52:29

标签: coldfusion

我需要将结构中的所有值(传递给函数的参数)转换为大写。

我编写了以下方法,但不是用格式化的方法替换参数,而是创建参数struct的新键(例如,对于第一个循环,它创建一个带有参数值的'1'的键[ 1],next循环使用arguments [2]的值创建一个新的'2'键,依此类推。

有人可以建议我如何更改结构中每个键的值吗?

代码类型显示了我想要做的事情,但如果您需要更多信息,请告诉我。

public function formatValues(){

        numArgs = structCount(arguments);
        for (i=1; i<=numArgs ; i=i+1){
            arguments[i] = Ucase(arguments[i]);
        }

        return arguments;

}

2 个答案:

答案 0 :(得分:5)

试试这个:

public function formatValues(){
    for (var i in arguments){
        if( isSimpleValue( arguments[i] ) ){
            arguments[i] = ucase( arguments[i] );
        }
    }
    return arguments;
}
writeDump(formatValues(name="moo",city="baa"));
writeDump(formatValues("moo","baa"));

这将适用于命名参数和非命名参数。它也只会修改简单值(字符串,数字等)而不是复杂变量(数组,结构,对象)

答案 1 :(得分:0)

是因为你忘记了参数吗?

public function formatValues(arguments){

            var numArgs = structCount(arguments);
            for (var i=1; i<=numArgs ; i=i+1)
            {
                arguments[i] = Ucase(arguments[i]);
            }

            return arguments;

    }