1

私は自分のコードについて(明らかに)助けが必要です。これまでのところ、必要なjsonデータを取得できますが、グローバル配列に格納できないようです。私の目標は、次のような配列でdata.countとdata.urlを取得することです。

var myHelpfulVariable = [
    // e.g. [data.count, '{label:' + data.url + '}']
    [3856, {label:'http://www.google.com/'}],
    [1897, {label:'http://www.yahoo.com/'}],
    [3870, {label:'http://www.microsoft.com/'}]
]

私はpush機能を使っていくつかの異なる方法を試しましたが無駄になりました。以下はデータを取得するコードですが、データを配列に入れようとはしていません。

誰か助けてもらえますか?それが機能する理由の説明も役立ちます。前もって感謝します!

<script src="jquery.min.js"></script>
<script>
$(document).ready(function(){

    var getData = [
        'http://urls.api.twitter.com/1/urls/count.json?url=http://www.google.com&callback=?',
        'http://urls.api.twitter.com/1/urls/count.json?url=http://www.yahoo.com/&callback=?',
        'http://urls.api.twitter.com/1/urls/count.json?url=http://www.microsoft.com&callback=?'
    ];

    $.each(getData, function(i,getValue) {

        var urlForGetJSONfunction = "'" + getValue + "'"    

        $.getJSON(getValue,  function(data) {
            $('<div></div>').append('<strong>' + data.count + '</strong>' + ' retweets for: ' + '<a href="' + data.url + '">' + data.url + '</a>').appendTo('body')


            })//ends getJSON

    })//ends each loop
});
</script>
4

2 に答える 2

1

array.push( obj )期待どおりの動作を行い、オブジェクトを配列の最後に追加します。JSの配列要素は同じタイプである必要はないため、次のように取得したデータをプッシュするだけで済みます。

var myHelpfulVariable=[];

$.each(getData, function(i,getValue) {

    var urlForGetJSONfunction = "'" + getValue + "'";  

    $.getJSON(getValue,  function(data) {
        $('<div></div>').append('<strong>' + data.count + '</strong>' + ' retweets for: ' + '<a href="' + data.url + '">' + data.url + '</a>').appendTo('body');

        var pair = [];
        pair.push(data.count);
        pair.push({'label':data.url});

        myHelpfulVariable.push(pair);

    });//ends getJSON

});
于 2012-06-07T04:38:14.903 に答える
0

質問の冒頭で、あなたmyHelpfulVariableは配列の配列として定義されています。ここで、内部配列には数値とオブジェクトが含まれています。それがあなたが本当に望むものなら、ここにこれがあります:

<script src="jquery.min.js"></script>
<script>
$(document).ready(function(){

    var myHelpfulVariable = [];

    var getData = [
        'http://urls.api.twitter.com/1/urls/count.json?url=http://www.google.com&callback=?',
        'http://urls.api.twitter.com/1/urls/count.json?url=http://www.yahoo.com/&callback=?',
        'http://urls.api.twitter.com/1/urls/count.json?url=http://www.microsoft.com&callback=?'
    ];

    $.each(getData, function(i,getValue) {

        var urlForGetJSONfunction = "'" + getValue + "'"    

        $.getJSON(getValue,  function(data) {

            myHelpfulVariable.push( [data.count, { label: data.url } ] );


            }); //ends getJSON

    }); //ends each loop
});
</script>
于 2012-06-07T04:39:47.680 に答える