您好我想从两个数组中提取相同网址的元素。如何循环这两个数组并获取其内容,因为它为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);
}
}
答案 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 : ''
函数中news_tweets
}
功能添加近距离geo
并从上次删除}
new_array
参数添加到second
函数,例如second(user, date, profile_img, text, url,news_array);