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/'}]
]

我已经尝试了几种使用推送功能的不同方法,但均无济于事。下面是获取数据但不尝试将其放入数组的代码。

有人可以帮忙吗?解释它为什么起作用也会有所帮助。提前致谢!

<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 回答