Iterating over two arrays at a time in Javascript
I want to iterate over two arrays at the same time, as the values for any given index i
in array A corresponds to the value in array B.
I am currently using this code, and getting undefined
when I call alert(queryPredicates[i])
or alert(queryObjects[i])
.
//queryPredicates[] and queryObjects[] are defined above as global vars - not in a particular function, and I have c开发者_运维问答hecked that they contain the correct information.
function getObjectCount(){
var variables = queryPredicates.length; //the number of variables is found by the length of the arrays - they should both be of the same length
var queryString="count="+variables;
for(var i=1; i<=variables;i++){
alert(queryPredicates[i]);
alert(queryObjects[i]);
}
The value of the length
property of any array, is the actual number of elements (more exactly, the greatest existing index plus one).
If you try to access this index, it will be always undefined
because it is outside of the bounds of the array (this happens in the last iteration of your loop, because the i<=variables
condition).
In JavaScript the indexes are handled from 0
to length - 1
.
Aside of that make sure that your two arrays have the same number of elements.
If queryPredicates
does not have numerical indexes, like 0, 1, 2, etc.. then trying to alert the value queryPredicates[0]
when the first item has an index of queryPredicates['some_index']
won't alert anything.
Try using a for
loop instead:
stuff['my_index'] = "some_value";
for (var i in stuff)
{
// will alert "my_index"
alert(i);
// will alert "some_value"
alert(stuff[i]);
}
Arrays in JS are zero based. Length is the actual count. Your loop is going outside the bounds of the array.
精彩评论