Go Back   CodingForums.com > :: Client side development > JavaScript programming

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 10-12-2008, 07:51 AM   PM User | #1
hotwheelharry
Regular Coder

 
Join Date: Jun 2008
Posts: 102
Thanks: 6
Thanked 9 Times in 9 Posts
hotwheelharry is an unknown quantity at this point
How do I get the members of an arbitrary object?

so basically, how do I write a function that does this.

Code:
function getMembers(obj)
{
  var extractedMembers = new Array();
  for(member in obj)
  {
     extractedMembers.push(member);
  }
  return extractedMembers;
}
It extracts the members in any arbitrary object and returns them in an array.

Many thanks!
hotwheelharry is offline   Reply With Quote
Old 10-12-2008, 03:20 PM   PM User | #2
rnd me
Senior Coder

 
rnd me's Avatar
 
Join Date: Jun 2007
Location: Urbana
Posts: 3,452
Thanks: 9
Thanked 466 Times in 450 Posts
rnd me is a jewel in the roughrnd me is a jewel in the roughrnd me is a jewel in the rough
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
__________________
my site (updated 5/13)
STATS (2013/5) HTML5:90.2% MOB:14% IE7:0.5% IE8:8.8% IE9:11.4% IE10:6.5%
rnd me is offline   Reply With Quote
Users who have thanked rnd me for this post:
hotwheelharry (10-12-2008)
Old 10-12-2008, 07:42 PM   PM User | #3
hotwheelharry
Regular Coder

 
Join Date: Jun 2008
Posts: 102
Thanks: 6
Thanked 9 Times in 9 Posts
hotwheelharry is an unknown quantity at this point
WOW!
Thank you so much, that's exactly what I was looking for!
hotwheelharry is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 01:18 AM.


Advertisement
Log in to turn off these ads.