0

您好,我想从具有相同 url 的两个数组中提取元素。我如何循环这两个数组并获取它们的内容,因为它给了我未定义的 news_url 并且我认为它在控制台中输出了两倍的项目。

function geo(news_array,user_tweets){
    console.log(news_array,user_tweets);
    for (var x=0; x<user_tweets.length; x++) {
        var user = user_tweets[x].user;
        var date = user_tweets[x].date;
        var profile_img = user_tweets[x].profile_img;
        var text = user_tweets[x].text;
        var url=user_tweets[x].url;
        second(user,date,profile_img,text,url);
    }
    function second(user,date,profile_img,text,url){
        for (var i = 0; i < news_array.length; i++) {
            var news_user = news_array[i].news_user;
            var news_date = news_array[i].news_date;
            var news_profile_img = news_array[i].news_profile_img;
            var news_text = news_array[i].news_text;
            var news_url=news_array[i].url;
            if (url==news_array[i].news_url) {
                geocode(user,date,profile_img,text,url,news_user,news_date,news_profile_img,news_text,news_url);
            }
        }
    }
    function geocode(user,date,profile_img,text,url,news_user,news_date,news_profile_img,news_text,news_url) {
        console.log(url,news_url);
            }
    }
4

2 回答 2

0

您必须在第一个循环之前声明一些变量for,以便可以在second函数范围内访问它们。尝试for用以下代码替换您的第一个循环:

var user, date, profile_img, text, url;
for (var x=0; x<user_tweets.length; x++){
    user = user_tweets[x].user;
    date = user_tweets[x].date;
    profile_img = user_tweets[x].profile_img;
    text = user_tweets[x].text;
    url=user_tweets[x].url;
    second(user,date,profile_img,text,url);
}

此外,在if你的second函数中,news_array[i].news_url没有定义。改为使用if (url == news_url)

于 2012-09-24T11:22:39.387 回答
0

问题出在news_tweets功能上,你添加news_urlnews_array. 所以你应该打电话

news_array[i].news_url

second功能上。

我将您的代码修改为

  1. news_url: (item.entities.urls.length > 0)?item.entities.urls[0].url : ''news_tweets功能上
  2. }geo函数添加右大括号并}从最后一个删除
  3. new_array参数添加到second函数中second(user, date, profile_img, text, url,news_array);

修改代码可以在http://jsfiddle.net/rhjJb/7/测试

于 2012-09-24T11:23:06.677 回答