将(推送?)字符串数据放入数组(或对象) - jQuery

时间:2012-06-07 04:22:26

标签: jquery

我的代码需要一些帮助(显然)。到目前为止,我能够获得我想要的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>

2 个答案:

答案 0 :(得分: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

});

答案 1 :(得分: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>