Javascript传递var

时间:2015-12-20 16:41:09

标签: javascript

我有一点问题。我是JS的新手,我无法弄清楚。

我试图从Facebook获得一个朋友列表。要做到这一点,我使用用户帖子,我只想显示重复项。我的第一个答案是如何从循环中显示所有朋友并仅获取重复项(我只需要一个或两个对象),其次是如何将var从函数传递到另一个函数,因为我想将所有信息POST到一个php文件。

这就是我所做的:

function getInfo() {
    FB.api(
        '/me',
        'GET',
        {fields: 'first_name'}, 
        function(response) {
            friends();
            var myname = response.first_name;
            $.post(
                "file.php",
                { myname:myname,friendsname:friendsname },
                function(data) { $("body").append(data); }
            );  
        }

通过这个功能,我得到了我的名字。

function friends() {
    FB.api(
       '/me/posts?fields=likes{id,name}',
        {limit:50},
        function(response) {
            if (response.data) {
                $.each(response.data,function(index, posts) {
                    var posturi = posts.likes;
                        $.each(posturi.data, function(useri, lista) {
                            var friendsname = lista.name;
                        });
                }); 
            }
        }
    );
}

这是我朋友的名单。如果我检查console.log(friendsname)它会给我所有重复的朋友。但如果我在innerHTML中写$.each,它只返回一个对象。如何将friendsnamefriends()传递到getInfo(),以便发布到.php文件中?

1 个答案:

答案 0 :(得分:0)

那是因为你在innerHTML的每个循环中都覆盖了$.each的值。

试试这个:

var posturi = posts.likes;
var names = posturi.data.map(function(item) { return item.name; }).join(', ');

names将包含以逗号分隔的名称列表。