1

我正在尝试将值分配给 javascript 对象,这样做时,一些垃圾值最终会出现在那里,这些值看起来像是数组方法,如“push”、“pop”、“splice”等。以下是我的代码。

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();
}

我不确定我在这里缺少什么,但看起来我确实是。对此的任何帮助将不胜感激。

4

2 回答 2

3

永远不要在数组上使用 for...in。时期。您看到的垃圾值是数组原型的属性。

请参阅此相关问题

于 2012-09-05T15:45:50.613 回答
1
for (var row in userArray){
        if(userArray.hasOwnProperty(row))
           alert(row) ;  
        }

详情在这里。基本上, for 循环将采用所有可用的属性/功能。并且您必须检查它是仅属于该对象还是被继承。

于 2012-09-05T15:45:32.383 回答