473,386 Members | 1,705 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

for in and arrays

I think I am misundertanding how "in" works.

I thought I could do this:

var div_array=document.getElementsByTagName('div');

for(var el in div_array){
// I thought el would be an element of that array
// doing this: alert(el) yields either the elements ID or "length"
// why is that?
}

This works, which I thought was the same.

for(var i=0; i< div_array.length; i++){
var el=div_array[i];
alert(el.innerHTML);
}

Cheers,
Jeff
Jul 20 '05 #1
2 1341
Well, I see what I did wrong. I shouldn't write javascript after being
up late!

Jeff

I think I am misundertanding how "in" works.

I thought I could do this:

var div_array=document.getElementsByTagName('div');

for(var el in div_array){
// I thought el would be an element of that array
// should be: div_array[el]

// which yields either the ID or it's position or the string "length"
which still puzzles me!

// doing this: alert(el) yields either the elements ID or "length"
// why is that?
}

This works, which I thought was the same.

for(var i=0; i< div_array.length; i++){
var el=div_array[i];
alert(el.innerHTML);
}

Cheers,
Jeff

Jul 20 '05 #2
Jeff Thies <cy*******@sprintmail.com> writes:
I thought I could do this:

var div_array=document.getElementsByTagName('div');

for(var el in div_array){
// I thought el would be an element of that array
You caught this one. I do it all the time too. A bad habit from Perl :).
// doing this: alert(el) yields either the elements ID or "length"
// why is that?
What
for (id in obj) { ... }
does is to let id iterate through the enumerable properties of the
object obj.

If obj is an array, the enumerable properties are usually only the
ones with integer names (length, push, etc. are set to be
non-enumerable), but you can add other properties that will be
enumerable.

That is
var arr = [10,20,30];
for (var i in arr) { ... } // i is in the set {0,1,2}

But if you add another property, it is also enumerable.

var arr = [10,20,30];
arr["golfball"] = 40;
for (var i in arr) { ... } // i is in the set {0,1,2,golfball}

What bites you here is that the result of
document.getElementsByTagName is a collection, not an array.
Many of its properties are enumerable.

This works, which I thought was the same.

for(var i=0; i< div_array.length; i++){


It is only the same, if the enumerable properties of div_array are
exactly the interes from zero to length-1.

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

19
by: Canonical Latin | last post by:
"Leor Zolman" <leor@bdsoft.com> wrote > "Canonical Latin" <javaplus@hotmail.com> wrote: > > > ... > >But I'm still curious as to the rational of having type >...
21
by: Matteo Settenvini | last post by:
Ok, I'm quite a newbie, so this question may appear silly. I'm using g++ 3.3.x. I had been taught that an array isn't a lot different from a pointer (in fact you can use the pointer arithmetics to...
5
by: JezB | last post by:
What's the easiest way to concatenate arrays ? For example, I want a list of files that match one of 3 search patterns, so I need something like DirectoryInfo ld = new DirectoryInfo(searchDir);...
3
by: Michel Rouzic | last post by:
It's the first time I try using structs, and I'm getting confused with it and can't make it work properly I firstly define the structure by this : typedef struct { char *l1; int *l2; int Nval; }...
1
by: Rob Griffiths | last post by:
Can anyone explain to me the difference between an element type and a component type? In the java literature, arrays are said to have component types, whereas collections from the Collections...
41
by: Rene Nyffenegger | last post by:
Hello everyone. I am not fluent in JavaScript, so I might overlook the obvious. But in all other programming languages that I know and that have associative arrays, or hashes, the elements in...
6
by: Robert Bravery | last post by:
Hi all, Can some one show me how to achieve a cross product of arrays. So that if I had two arrays (could be any number) with three elements in each (once again could be any number) I would get:...
1
by: Doug_J_W | last post by:
I have a Visual Basic (2005) project that contains around twenty embedded text files as resources. The text files contain two columns of real numbers that are separated by tab deliminator, and are...
16
by: mike3 | last post by:
(I'm xposting this to both comp.lang.c++ and comp.os.ms- windows.programmer.win32 since there's Windows material in here as well as questions related to standard C++. Not sure how that'd go over...
29
weaknessforcats
by: weaknessforcats | last post by:
Arrays Revealed Introduction Arrays are the built-in containers of C and C++. This article assumes the reader has some experiece with arrays and array syntax but is not clear on a )exactly how...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.