форматирование всех значений в структуре - PullRequest
1 голос
/ 02 ноября 2011

Мне нужно преобразовать все значения в структуре (аргументы, переданные в функцию) в верхний регистр.

Я написал следующий метод, но вместо того, чтобы заменить аргумент форматированным, он создает новыйключ к структуре аргументов (например, для первого цикла создается ключ «1» со значением аргументов [1], следующий цикл создает новый ключ «2» со значением аргументов [2] и т. д.).

Кто-нибудь может подсказать, как я могу изменить значение каждого ключа в структуре?

Тип кода показывает, что я пытаюсь сделать, но дайте мне знать, если вам нужна дополнительная информация.

public function formatValues(){

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

        return arguments;

}

Ответы [ 2 ]

5 голосов
/ 02 ноября 2011

Попробуйте это:

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

Это будет работать с именованными аргументами и неименованными аргументами. Он также изменяет только простые значения (строки, числа и т. Д.), А не сложные переменные (массивы, структуры, объекты)

0 голосов
/ 02 ноября 2011

Это потому, что вы забыли параметр?

public function formatValues(arguments){

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

            return arguments;

    }
...