我需要将结构中的所有值(传递给函数的参数)转换为大写。
我编写了以下方法,但不是用格式化的方法替换参数,而是创建参数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;
}
答案 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;
}