从两个具有相同值的数组中提取元素

时间:2012-09-24 11:16:36

标签: javascript arrays

您好我想从两个数组中提取相同网址的元素。如何循环这两个数组并获取其内容,因为它为news_url提供了未定义的内容,我认为它会在控制台中输出两倍的项目。 / p>

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);
            }
    }

2 个答案:

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

答案 1 :(得分:0)

问题是 在news_tweets函数中,您将news_url添加到news_array。所以你应该打电话给

  

news_array [I] .news_url

second函数中。

我将您的代码修改为

    news_url: (item.entities.urls.length > 0)?item.entities.urls[0].url : ''函数中
  1. news_tweets
  2. }功能添加近距离geo并从上次删除}
  3. new_array参数添加到second函数,例如second(user, date, profile_img, text, url,news_array);
  4. 可以在http://jsfiddle.net/rhjJb/7/

    中测试修改代码