0

こんにちは私はいくつかの値を配列にプッシュしたいのですが、その配列に警告すると、[object、object]、[object、object]、[object、object]、[object、object]が表示されます

誰かが問題が何であるか知っていますか?

コードは次のとおりです。

    $(document).ready(function() {
    $(":button").click(function(event){
     var value = $('#box').val();
    if (value==""){
        return false;
        }
       else{$.getJSON("http://search.twitter.com/search.json?callback=?&q=value",
        function(data){
            var array=[];
            $.each(data.results, function(i, item){
                var user=item.from_user;
                var created_at=item.created_at
                array.push({date:'created_at',username:'user'});
            });alert(array);
            });
        }
      });});
4

3 に答える 3

0

最初に、あなたのコードに小さなバグを見つけました。配列にプッシュするオブジェクトを作成するときは、値を使用せずに固定文字列 (upticks) を使用します。その行をこのバージョンに変更する必要があります。

array.push({date:created_at, username:user});   

内部状態 (デバッグ情報) を視覚化しようとすると、 を使用してalert()も視覚的な表現が不十分になります。の代わりにalert()使用できますconsole.log()

このステートメントは、コンソールに出力を作成します。すべてのブラウザがサポートしているわけではありません。Internet Explorer には開発者ツールがあります。F12 を押すだけでアクティブにできます。しかし、私が見る限り、IE の出力は非常に限られています。Firefox は Firebug プラグイン (非常に強力なツールです!) で拡張できます。

コードを呼び出すとconsole.log(array)、Firebug の出力は次のようになります。

[Object { date=..., username = ... }, Object { date = ..., username = ...}]

console.log()はすべてのブラウザでサポートされているわけではないため、本番環境でソースをリリースする前に呼び出しを削除する必要があります。

于 2012-07-27T10:42:25.430 に答える
0

問題ありません。

(作成される) オブジェクトをアラートする{date:'created_at',username:'user'}と、文字列化されて"[object object]". toString(オブジェクトの関数をオーバーライドすることで変更できます)。

配列にはオブジェクトが含まれています。

(OK、技術的には問題がありますが、説明した症状はそれとは関係ありません。オブジェクトに入力する値は文字列リテラルであり、変数ではありません。それらを引用しないでください)。

于 2012-07-27T10:34:22.000 に答える
0

オブジェクトを作成するために、変数の代わりに文字列を使用しています。

array.push({date:'created_at',username:'user'});

次のようにする必要があります。

array.push({date:created_at,username:user});

また

array.push({date:item.created_at, username:item.from_user});

オブジェクトを作成した後、デバッグconsole.logの代わりに使用します。alertアラートによって呼び出されるデフォルトのObject.toString()実装は、表示され[object Object]ている を返します。

于 2012-07-27T10:43:00.543 に答える