Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 192
  • Last Modified:

Need help with javascript array

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
sstolp2005
Asked:
sstolp2005
  • 2
1 Solution
 
HonorGodCommented:
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
 
sstolp2005Author Commented:
Wow.  This really helped.  I think I can figure it out from here.  Thank you SO much!!
0
 
HonorGodCommented:
You are very welcome.  Thank you for the grade & points.

Good luck & have a great day.
0

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now