Array.prototype.array_change_key_case

cryo

Mitglied
Schönen Guten Abend alle miteinander!

Als erstes mal was ich habe (womit ich teste),
Code:
Array.prototype.array_change_key_case = function(mode){
    var org = this;
    var res = new Array();
    
    for( var el in org ){
        if( el!='array_change_key_case' ){
            alert(el);
            switch( mode ){
                case 'CASE_UPPER':
                    res[el.toUpperCase()] = org[el];
                    break;

                case 'CASE_LOWER':
                default:
                    res[el.toLowerCase()] = org[el];
                    break;
            }
        }
    }

    return res;
};

Die obige Funktion wandelt alle Schlüssel eines Array in Groß- oder Kleinbuchstaben um.

dann wie ich es aufrufe,
Code:
var ORIGINAL     = new Array();
ORIGINAL['a']    = 'Wert A';
ORIGINAL['B']    = 'Wert B';
ORIGINAL['c']    = 'Wert C';
var AUSGABE     = ORIGINAL.array_change_key_case('CASE_UPPER');

und zum Schluß was ich zurück bekomme.
Code:
Array(
  [A] => Wert A
  [B] => Wert B
  [ C] => Wert C
  [array_change_key_case] =>  function (mode) { var org = this; var res = new Array(); for (var el in org) { if (el != "array_change_key_case") { alert(el); switch (mode) { case "CASE_UPPER": res[el.toUpperCase()] = org[el]; break; case "CASE_LOWER": default: res[el.toLowerCase()] = org[el]; break; } } } return res; }
)

Das was mir irgendwie schon klar ist, ist das der Eintrag 'array_change_key_case' im Array was ich herausbekomme mit dabei ist ... weil ich ja mit 'this' in o.g. Funktion arbeite. Wie bekomme ich den aber in dem Ausgabearray raus, so dass ich nur das originale Array mit den umgewandelten KEYs zurückbekomme.

Hat jemand ne Gute Idee oder einen Denkanstoß parat ... Bitte

MfG Cryo
 
Ich würde sagen, indem du darauf verzichtest, diese Methode dem Array-Objekt hinzuzufügen, sondern stattdessen den die Funktion nimmst und ihr den Array als Parameter übergibst, und ihn dann änderst.
 

Neue Beiträge

Zurück