JavaScript Development
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me

The Shed is going Social! Join us on FaceBook and Twitter and chime in on the conversation.

Go Back   Dev Shed ForumsWeb DesignJavaScript Development

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old July 15th, 2008, 02:22 AM
srisa srisa is offline
Contributing User
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: May 2006
Location: I'm sneaking up behind you.
Posts: 1,490 srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level) 
Time spent in forums: 3 Weeks 3 Days 19 h 21 m 45 sec
Reputation Power: 831
Empty array

Hello,
I have this set of two functions which replicate the problem i have.
javascript Code:
Original - javascript Code
  1.  
  2. function check(){
  3.     var a = arr();
  4.     alert('number 1 is '+a.num1);
  5.     alert('number 2 is '+a.num2);
  6.     alert('a is '+a);
  7.     alert('length of a is '+a.length);
  8.     return true;
  9. }
  10.  
  11. function arr(){
  12.     var ar = new Array();
  13.     ar['num1'] = 19.97;
  14.     ar['num2'] = 19.98;
  15.     return ar;
  16. }

a.num1 and a.num2 show up correctly but the a.length returns 0. Is that expected behaviour or am I missing something?
Thank you.
__________________
Why do we always seek someone, something or some thought? Are we afraid of ourselves?

Reply With Quote
  #2  
Old July 15th, 2008, 05:04 AM
scoper's Avatar
scoper scoper is offline
Contributing User
Dev Shed Novice (500 - 999 posts)
 
Join Date: Jun 2004
Location: Surrey, UK
Posts: 989 scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level) 
Time spent in forums: 1 Week 2 Days 11 h 45 m 29 sec
Reputation Power: 314
Send a message via MSN to scoper Send a message via Google Talk to scoper Send a message via Skype to scoper
You're not actually setting any elements in the array... by using arr["name"] you are actually setting a property called name on the object rather than adding an element to it and therefore not updating the length.
__________________
Scott Perham - MCPD

That URL too long? Why not URL IT!

Reply With Quote
  #3  
Old July 15th, 2008, 05:32 AM
KorRedDevil's Avatar
KorRedDevil KorRedDevil is offline
Contributing User
Dev Shed Frequenter (2500 - 2999 posts)
 
Join Date: Aug 2005
Location: Bucharest ROMANIA
Posts: 2,557 KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level)KorRedDevil User rank is Brigadier General (60000 - 70000 Reputation Level) 
Time spent in forums: 4 Weeks 5 h 34 m 26 sec
Reputation Power: 614
Send a message via Yahoo to KorRedDevil
Quote:
Originally Posted by srisa
Is that expected behaviour or am I missing something?

It is an expected behavior, yes. You have not build an ordered array, you have build an associative array. An associative array has no length.

Ordered array (vector, list, sequence):
Code:
var myArray=[];
myArray[0]='John';
myArray[1]='Bull';

Associative array (object, record, struct, dictionary, hash table, keyed list):
Code:
var myObject={};
myObject['firstname']='John';
myObject['lastname']='Bull';
__________________
HELP SAVE ANA

Reply With Quote
  #4  
Old July 15th, 2008, 06:20 AM
srisa srisa is offline
Contributing User
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: May 2006
Location: I'm sneaking up behind you.
Posts: 1,490 srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level) 
Time spent in forums: 3 Weeks 3 Days 19 h 21 m 45 sec
Reputation Power: 831
Then, how do I check that the associative array is empty or not empty?

Reply With Quote
  #5  
Old July 15th, 2008, 06:30 AM
scoper's Avatar
scoper scoper is offline
Contributing User
Dev Shed Novice (500 - 999 posts)
 
Join Date: Jun 2004
Location: Surrey, UK
Posts: 989 scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level) 
Time spent in forums: 1 Week 2 Days 11 h 45 m 29 sec
Reputation Power: 314
Send a message via MSN to scoper Send a message via Google Talk to scoper Send a message via Skype to scoper
You could do something like:

Code:
var length = 0;
for (var i in a)
    length++;


Of course this would only work if the object "a" was created using {} rather than a new array...

Reply With Quote
  #6  
Old July 15th, 2008, 06:55 AM
srisa srisa is offline
Contributing User
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: May 2006
Location: I'm sneaking up behind you.
Posts: 1,490 srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level) 
Time spent in forums: 3 Weeks 3 Days 19 h 21 m 45 sec
Reputation Power: 831
Is it acceptable to use if (!a.num1) to check that a is empty? It is working, but I am not sure it is a good idea.

Reply With Quote
  #7  
Old July 15th, 2008, 06:58 AM
scoper's Avatar
scoper scoper is offline
Contributing User
Dev Shed Novice (500 - 999 posts)
 
Join Date: Jun 2004
Location: Surrey, UK
Posts: 989 scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level)scoper User rank is Major (30000 - 40000 Reputation Level) 
Time spent in forums: 1 Week 2 Days 11 h 45 m 29 sec
Reputation Power: 314
Send a message via MSN to scoper Send a message via Google Talk to scoper Send a message via Skype to scoper
Thats fine, unless num1 is a boolean property it might be better to check using:

Code:
if (typeof a["num1"] != "undefined")
    ...
Comments on this post
srisa agrees: Thank you.

Reply With Quote
  #8  
Old July 15th, 2008, 07:16 AM
srisa srisa is offline
Contributing User
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: May 2006
Location: I'm sneaking up behind you.
Posts: 1,490 srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level)srisa User rank is Lieutenant General (80000 - 90000 Reputation Level) 
Time spent in forums: 3 Weeks 3 Days 19 h 21 m 45 sec
Reputation Power: 831
num1 won't be a boolean. It will be a number or empty. But still, your code should be used and I will use it. Thanks a lot.

Reply With Quote
Reply

Viewing: Dev Shed ForumsWeb DesignJavaScript Development > Empty array

Developer Shed Advertisers and Affiliates



Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  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

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump

Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 


Powered by: vBulletin Version 3.0.5
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.

© 2003-2013 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap