2014-07-11 2 views
-2

다음과 같이 두 개의 배열이 있습니다. obj1에서한 배열에서 다른 배열로 데이터 복사

var obj1 = [ 
     { 
      "POST": "Developer", 
      "USERNAME": [ 
       "User1", 
       "User2" 
      ] 
     }, 
     { 
      "POST": "Tester", 
      "USERNAME": [ 
       "User3" 
      ] 
     } 
    ] 

var obj2 = [ 
     { 
      "USERNAME": "User1", 
      "USER_PASSWORD": "test1" 
     }, 
     { 
      "USERNAME": "User2", 
      "USER_PASSWORD": "test2" 
     }, 
     { 
      "USERNAME": "User3", 
      "USER_PASSWORD": "test3" 
     } 
    ] 

은 내가 POST 값이 obj2에 해당 사용자에 추가 할.

최종 결과는 다음과 같습니다.

[ 
    { 
     "USERNAME": "User1", 
     "USER_PASSWORD": "test1", 
     "POST": "Developer" 
    }, 
    { 
     "USERNAME": "User2", 
     "USER_PASSWORD": "test2", 
     "POST": "Developer" 
    }, 
    { 
     "USERNAME": "User3", 
     "USER_PASSWORD": "test3", 
     "POST": "Tester" 
    } 
] 
+3

을 지금까지 시도 무엇입니까? 이 코드를 게시해야하며 시도해 볼 수 있습니다. 아무 것도 시도하지 않은 경우 이동하여 문제가 발생하면 다시 시도하십시오. – Andy

+0

가능한 복제본 [개체를 복제하는 가장 효율적인 방법은 무엇입니까?] (http://stackoverflow.com/questions/122102/what-is-the-most-efficient-way-to-clone-an-object) – fmsf

답변

1

이 시도 :

var obj1 = [ 
       {"POST":"Developer","USERNAME":["User1","User2"]}, 
       {"POST":"Tester","USERNAME":["User3"]} 
      ]; 
      var obj2 = [ 
       {"USERNAME":"User1","USER_PASSWORD":"test1"}, 
       {"USERNAME":"User2","USER_PASSWORD":"test2"}, 
       {"USERNAME":"User3","USER_PASSWORD":"test3"}]; 
      var obj3=[]; 

      obj1.forEach(function(eachObj1) { 
       obj2.forEach(function(eachObj2) { 
        if(eachObj1.USERNAME.indexOf(eachObj2.USERNAME) >= 0) { 
         console.log("in if") 
         eachObj2.POST = eachObj1.POST; 
         obj3.push(eachObj2); 
        } 
       }); 
      }); 
-2

이 시도,

var obj1 = [{"POST":"Developer","USERNAME":["User1","User2"]},{"POST":"Tester","USERNAME":["User3"]}]; 
var obj2 = [{"USERNAME":"User1","USER_PASSWORD":"test1"},{"USERNAME":"User2","USER_PASSWORD":"test2"},{"USERNAME":"User3","USER_PASSWORD":"test3"}]; 
$.each(obj2,function(i,val){ 
    $.each(obj1,function(index,innerVal){ 

     var post=innerVal.POST; 
     $.each(innerVal.USERNAME,function(i,user){ 
      if(user==val.USERNAME){ 
       val.POST=post; 
      } 
     }); 
    }); 
}); 
alert(JSON.stringify(obj2)); 

Demo

+0

게시물에 Node.js 태그가 붙어 있기 때문에 jQuery가 포함 된 것은 아닙니다. 배열을 반복하는 jQuery를 포함하면 합리적이지 않습니다. – JJJ

관련 문제