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 に答える