数组错误如何使其工作?

时间:2012-03-05 03:34:53

标签: javascript

var facebook_info = [{name:"",url:""}];

for(i=0;i<10;i++){
    var randomNum = Math.floor(Math.random() * friend_list[0].fql_result_set.length);   
    facebook_info[i].name=friend_list[0].fql_result_set[randomNum].name;
    facebook_info[i].url=friend_list[0].fql_result_set[randomNum].pic_square_with_logo;     

    console.log(facebook_info.name[i]);
    console.log(facebook_info.url[i]);
}

我正在尝试将两个输入放到数组中,但在编译时会出现错误。 我认为我声明数组的方式是错误的。 任何解决方案? 谢谢。

3 个答案:

答案 0 :(得分:0)

你在数组facebook_info中只有一个元素,但是你试图在数组中迭代10个元素。

请改为尝试:

var facebook_info = [];

for(i=0;i<10;i++){
    var randomNum = Math.floor(Math.random() * friend_list[0].fql_result_set.length);   
    var name=friend_list[0].fql_result_set[randomNum].name;
    var url=friend_list[0].fql_result_set[randomNum].pic_square_with_logo;     
        facebook_info.push({
            "name":name,
            "url":url
        });

    console.log(facebook_info.name[i]);
    console.log(facebook_info.url[i]);
}

答案 1 :(得分:0)

你走了:

请注意您的代码中有全局变量i,第二件事是如何编译JavaScript?

var facebook_info = [],
    len =  facebook_info.length,
    i,
    randomNum;

for(i=0; i<len; i++){
    randomNum = Math.floor(Math.random() * friend_list[0].fql_result_set.length);

    facebook_info[i] = {name: friend_list[0].fql_result_set[randomNum].name, url: friend_list[0].fql_result_set[randomNum].pic_square_with_logo};

}

答案 2 :(得分:0)

var facebook_info = [{name:"",url:""}];

使用一个元素创建一个Array。相反,你应该像这样创建一个空数组:

var facebook_info = [];

然后,将内容推入循环中的facebook_info,如下所示:

for (...) {
  ...
  var random_friend = friend_list[0].fql_result_set[randomNum];
  facebook_info.push({
    name: random_friend.name,
    url: random_friend.pic_square_with_logo
  });
}