I’m trying to assign values to a javascript object and when doing so, some junk values end up in there which seem like array methods like ‘push’, ‘pop’,’splice’ etc. The following is my code.
function myTest(){
var userArray = new Object();
var req = new Request.JSON({
url: '/myTest.php',
method: 'post',
noCache: true,
data: 'userID=999',
onSuccess: function(json){
for(var key in json){
userArray = json[key];
for (var row in userArray){
alert(row) // This returns values like '$family','push','pop', 'reverse' etc.
}
}
},
onException: function(xhr){
alert("Unable to process your request");
},
onFailure: function(xhr){
alert("Unable to connect to the server");
}
}).send();
}
I am not sure what I’m missing here but it looks like I certainly am. Any help on this would be greatly appreciated.
Never use for…in on an array. Period. The garbage values you are seeing are properties of the array prototype.
See this related question.