2012-09-24 9 views
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); 
      } 
    } 
+0

그 2 개의 구조의 구조는 무엇인가? 그들을 console.log 수 있으며 각 배열의 하나 또는 두 개의 항목의 출력을 보여줍니다. –

+0

코드가 올바르게 들여 쓰기되어 닫는 중괄호가없는 것 같습니다. 다시 확인해 주시겠습니까? –

+0

다중 레벨 루프가 충분하지 않습니까? – techfoobar

답변

0

문제는 news_tweets 기능에 입니다, 당신은 news_arraynews_url를 추가합니다. 그래서 당신은 second 기능에

news_array [I] .news_url

를 호출해야합니다.

나는 new_array 매개 변수 second(user, date, profile_img, text, url,news_array); 같은 기능 second에 추가 geo 기능에 가까운 중괄호 }를 추가

  • news_tweets 기능에

    1. news_url: (item.entities.urls.length > 0)?item.entities.urls[0].url : ''로 코드를 수정하고 마지막
    2. 에서 }을 제거

      공동 수정 de는에서 시험 될 수있다 http://jsfiddle.net/rhjJb/7/

  • +0

    예 아니요.이 코드는 이전과 같은 결과를 얻고 있습니다. –

    +0

    내 대답을 업데이트하고 jsfiddle에서 수정 코드를 추가하십시오. 이것에 대한 당신의 관찰을 알려주세요. 희망이 도움이됩니다. – swemon

    +0

    네가 before.sorry에서 대답을 찾았 기 때문에 나는 맞다 나는 너에게 말하지 않았다 ... 고마워 :) –

    0

    당신은 그들이 second 기능의 범위에 액세스 할 수 있도록, 첫 번째 for 루프 전에 몇 가지 변수를 선언해야합니다. 다음 코드를 사용하여 첫 번째 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); 
    } 
    

    또한, 귀하의 second 함수의 if에, news_array[i].news_url가 정의되어 있지 않습니다. 대신 if (url == news_url)을 사용하십시오.

    +0

    이것은 작동하지 않는다. 이전과 같은 결과를 얻는 !!! –

    +0

    @ ak_47 답변도 끝까지 쓴 것처럼'if'도 수정하려고 했습니까? – sp00m

    +0

    예 –

    관련 문제