October 12, 2008

Converting Objects to Arrays


                       
                        three handy functions for raking objects:



obVals : an array of the object’s values (variants)

obKeys : an array of the object’s keys (strings)

obMap : an array of the object’s keys and values: [key,value] (arrays)








       
Code:

       

function obVals(ob) {var r = [];var i = 0;for (var z in ob) {if (ob && ob.hasOwnProperty && ob.hasOwnProperty(z)) {r[i++] = ob[z];}}return r;}
function obKeys(ob) {var r = [];var i = 0;for (var z in ob) {if (ob.hasOwnProperty(z)) {r[i++] = z;}}return r;}
function obMap(ob) {var r = [];var i = 0;for (var z in ob) {if (ob.hasOwnProperty(z)) {r[i++] = [z, ob[z]];}}return r;}



//same code expanded
    function obVals(ob) {
        var r = [];
        var i = 0;
        for (var z in ob) {
            if (ob && ob.hasOwnProperty && ob.hasOwnProperty(z)) {
                r[i++] = ob[z];
            }
        }
        return r;
    }


    function obKeys(ob) {
        var r = [];
        var i = 0;
        for (var z in ob) {
            if (ob.hasOwnProperty(z)) {
                r[i++] = z;
            }
        }
        return r;
    }


    function obMap(ob) {
        var r = [];
        var i = 0;
        for (var z in ob) {
            if (ob.hasOwnProperty(z)) {
                r[i++] = [z, ob[z]];
            }
        }
        return r;
    }


//examples


var ob = ({ a:1,b:2,c:3 });

alert(obKeys(ob))// = a,b,c
alert(obVals(ob))// = 1,2,3
alert(obMap(ob).join("|"))// = a,1|b,2|c,3