Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Javascript (http://www.velocityreviews.com/forums/f68-javascript.html)
-   -   How do I get keys from an associative array? (http://www.velocityreviews.com/forums/t940504-how-do-i-get-keys-from-an-associative-array.html)

laredotornado 02-21-2010 01:31 AM

How do I get keys from an associative array?
 
Hi,

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

Thanks, - Dave

David Mark 02-21-2010 02:01 AM

Re: How do I get keys from an associative array?
 
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").

Thomas 'PointedEars' Lahn 02-21-2010 02:37 AM

Re: How do I get keys from an associative array?
 
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$8300dec7@news.demon.co.uk>

Lasse Reichstein Nielsen 02-21-2010 03:27 AM

Re: How do I get keys from an associative array?
 
laredotornado <laredotornado@zipmail.com> 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'


Thomas 'PointedEars' Lahn 02-21-2010 03:46 AM

Re: How do I get keys from an associative array?
 
Lasse Reichstein Nielsen wrote:

> laredotornado <laredotornado@zipmail.com> 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

Dr J R Stockton 02-25-2010 08:36 PM

Re: How do I get keys from an associative array?
 
In comp.lang.javascript message <tytbxo8f.fsf@gmail.com>, Sun, 21 Feb
2010 04:27:12, Lasse Reichstein Nielsen <lrn.unread@gmail.com> posted:
>laredotornado <laredotornado@zipmail.com> 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)


All times are GMT. The time now is 05:32 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.