我正在尝试为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();
}
我不确定我在这里缺少什么,但看起来我当然是。对此的任何帮助将不胜感激。
答案 0 :(得分:3)
永远不要在数组中使用... in。期。您看到的垃圾值是数组原型的属性。
请参阅此related question。
答案 1 :(得分:1)
for (var row in userArray){
if(userArray.hasOwnProperty(row))
alert(row) ;
}
详情here。基本上,for循环将采用所有可用的属性/功能。并且您必须检查它是仅属于该对象还是继承。