How do I get keys from an associative array?

Discussion in 'Javascript' started by laredotornado, Feb 21, 2010.

  1. Hi,

    Given an associative array, how do I get an array of the keys of that
    associative array?

    Thanks, - Dave
    laredotornado, Feb 21, 2010
    #1
    1. Advertising

  2. laredotornado

    David Mark Guest

    laredotornado wrote:
    > Hi,
    >
    > Given an associative array, how do I get an array of the keys of that
    > associative array?
    >


    There's no such thing as an associative array in JS.

    If you mean an Object object, use a for-in loop to populate an array.
    And make sure you filter the loop with either hasOwnProperty or a
    similar wrapper (Google "for-in intrigue").
    David Mark, Feb 21, 2010
    #2
    1. Advertising

  3. laredotornado wrote:

    > Given an associative array, how do I get an array of the keys of that
    > associative array?


    Mu.

    <http://jibbering.com/faq/#posting>


    PointedEars
    --
    Prototype.js was written by people who don't know javascript for people
    who don't know javascript. People who don't know javascript are not
    the best source of advice on designing systems that use javascript.
    -- Richard Cornford, cljs, <f806at$ail$1$>
    Thomas 'PointedEars' Lahn, Feb 21, 2010
    #3
  4. laredotornado <> writes:

    > Given an associative array, how do I get an array of the keys of that
    > associative array?


    If arr is your associative array (i.e., an object)
    In ECMAScript 5:
    var keys = Object.keys(object)
    In ECMAScript 3:
    var keys = [];
    for (var key in arr) { keys.push(key); }

    /L
    --
    Lasse Reichstein Holst Nielsen
    'Javascript frameworks is a disruptive technology'
    Lasse Reichstein Nielsen, Feb 21, 2010
    #4
  5. Lasse Reichstein Nielsen wrote:

    > laredotornado <> writes:
    >> Given an associative array, how do I get an array of the keys of that
    >> associative array?

    >
    > If arr is your associative array (i.e., an object)
    > In ECMAScript 5:
    > var keys = Object.keys(object)
    > In ECMAScript 3:
    > var keys = [];
    > for (var key in arr) { keys.push(key); }


    Where certain conditions must apply for the two approaches to be
    equivalent, of course.

    Let `o' be a reference to an object, JavaScript 1.7+ allows another
    variant, Array comprehension:

    var properties = [p for (p in o)];

    BTW, for the property values you can use

    var values = [v for each (v in o)];

    there, as a combination of the ECMA-262-3 extension (v1.7+) and the
    ECMA-357 implementation (v1.6+). Tested in Firefox/Iceweasel 3.5.8.


    PointedEars
    --
    realism: HTML 4.01 Strict
    evangelism: XHTML 1.0 Strict
    madness: XHTML 1.1 as application/xhtml+xml
    -- Bjoern Hoehrmann
    Thomas 'PointedEars' Lahn, Feb 21, 2010
    #5
  6. In comp.lang.javascript message <>, Sun, 21 Feb
    2010 04:27:12, Lasse Reichstein Nielsen <> posted:
    >laredotornado <> writes:
    >
    >> Given an associative array, how do I get an array of the keys of that
    >> associative array?

    >
    >If arr is your associative array (i.e., an object)
    >In ECMAScript 5:
    > var keys = Object.keys(object)
    >In ECMAScript 3:
    > var keys = [];
    > for (var key in arr) { keys.push(key); }


    The second entry should I suppose be headed "In ECMAScript 3 & 5"; and
    will then be the way to code it (for the open Web) until all browsers in
    use are sufficiently ES 5 compliant.

    --
    (c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 MIME.
    Web <URL:http://www.merlyn.demon.co.uk/> - FAQish topics, acronyms, & links.
    Proper <= 4-line sig. separator as above, a line exactly "-- " (RFCs 5536/7)
    Do not Mail News to me. Before a reply, quote with ">" or "> " (RFCs 5536/7)
    Dr J R Stockton, Feb 25, 2010
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Frank Fredstone
    Replies:
    1
    Views:
    402
    =?ISO-8859-1?Q?Tobias_Schr=F6er?=
    Sep 19, 2006
  2. desktop
    Replies:
    5
    Views:
    383
    James Kanze
    Jun 26, 2007
  3. Yvon Thoraval
    Replies:
    5
    Views:
    205
    Jason Creighton
    Sep 17, 2003
  4. VK
    Replies:
    47
    Views:
    536
    Thomas 'PointedEars' Lahn
    Jul 13, 2005
  5. Replies:
    5
    Views:
    154
    Randy Webb
    Jun 21, 2005
Loading...

Share This Page