Solved

Need help with javascript array

Posted on 2009-04-13
3
181 Views
Last Modified: 2012-05-06
Hi all.  Thank you in advance.

First I create an array like this:

var myArray = [];

I have some objects that are keeping track of information for me.  I have created them as thus:

var x = {a: "someinfo", b: "some more info" myID: "ID0"}

Then I add it to an Array like this:

myArray.push(x);

I set x to null, and will use it again in the future to possibly add more objects to the array. All of my objects have the exact same structure, but of course have a different "myID"

This "seems" to work fine for me except when it comes time to pull the information for one of the objects out of the array. I try to get the index as follows:

var myX = searchArray(myArray, "ID0");

and my searchArray function looks like this:

searchArray : function(arr, toFind)
{
  if(arr.constructor != Array)
    {
    return -1;
    }
    for(var i = 0, len = arr.length; i < len; i++)
    {
      if(arr[i].myID == toFind)
      {
        return i;
      }
    }
return -2;
}

I thought this would loop through the array until it found a matching myID and then send that index back to me so I could use the index to pull the object from the array.  When I have multiple objects in the array, and I write out whet the myID "should" be, it always comes back as 'undefined'.  I don't understand this at all.  There are clearly as many objects in the array as I have added, and on another function, it will actually loop through and write the myID.

I am so confused, and not very good with javascript (obviously).

This shouldn't be this difficult.  Can anyone help?

Thank you.

Steve
0
Comment
Question by:sstolp2005
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 41

Accepted Solution

by:
HonorGod earned 500 total points
ID: 24132007
Correcting  the syntax...  this works for me...

The external script file (objDisplay.js) contains some code that I wrote to help me dump the contents of objects.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Template</title>
<script type='text/javascript' src='../objDisplay.js'></script>
<script type='text/javascript'>
  function searchArray(arr, toFind) {
    if ( arr.constructor != Array ) {
      alert( 'not array' )
      return -1;
    }
    var len = arr.length
    for( var i = 0; i < len; i++ ) {
      if( arr[ i ].myID == toFind ) {
        alert( 'found at: ' + i )
        return i;
      }
    }
    alert( 'not found' )
    return -2;
  }
 
  window.onload = function() {
    var debug = document.getElementById( 'debug' )
 
    var myArray = []
    debug.innerHTML = objDisplay( 'myArray', myArray )
    debug.innerHTML += '<hr><br>'
 
    var x = {a: "someinfo", b: "some more info", myID: "ID0"}
    debug.innerHTML += objDisplay( '<br>x', x )
    debug.innerHTML += '<hr><br>'
 
    myArray.push( x )
 
    debug.innerHTML += objDisplay( '<br>myArray', myArray )
    debug.innerHTML += '<hr><br>'
 
    debug.innerHTML += objDisplay( '<br>myArray[0]', myArray[0] )
    debug.innerHTML += '<hr><br>'
 
    x = null
 
    debug.innerHTML += objDisplay( '<br>myArray[0]', myArray[0] )
 
    var inx = searchArray( myArray, "ID0" )
  }
</script>
</head>
<body>
<div id='debug'></div>
</body>
</html>

Open in new window

objDisplay.js.txt
0
 

Author Comment

by:sstolp2005
ID: 24132324
Wow.  This really helped.  I think I can figure it out from here.  Thank you SO much!!
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 24132555
You are very welcome.  Thank you for the grade & points.

Good luck & have a great day.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article discusses the difference between strict equality operator and equality operator in JavaScript. The Need: Because JavaScript performs an implicit type conversion when performing comparisons, we have to take this into account when wri…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
The viewer will learn how to count occurrences of each item in an array.

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question