2014-03-28 3 views
5

은 다음 샘플 JSON 배열을 고려 중첩 된 JSON 배열을 통해 반복하는 올바른 방법 :Nodejs -

[{ 
    info: { 
     refOne: 'refOne', 
     refTwo: [{ 
      refOne: 'refOne', 
      refTwo: 'refTwo' 
     }] 
    } 
}, { 
    info: { 
     refOne: 'refOne', 
     refTwo: [{ 
      refOne: 'refOne', 
      refTwo: 'refTwo' 
     }] 
    } 
}] 

위의 JSON을 통해 루프 Nodejs 내에서 올바른 방법은 무엇 데이터베이스 쿼리 응답의 간단한 표현이다 부모 정보 배열 내의 각 'refTwo'배열?

sudo는 예 : 각 refTwo 항목에 대한 샘플 JSON 의 각 항목에 대해 현재 항목 에서 내가 '비동기'LIB 여기에 요구 될 수 있지만 몇 가지 조언이 많이 감사하는 의심을 가지고 뭔가

을한다.

var o = [...]; 

var fn = function (e){ 
    e.refOne... 
    e.refTwo... 
}; 

o.forEach (function (e){ 
    e.info.refTwo.forEach (fn); 
}); 

답변

10

이것은 간단한 자바 스크립트 질문입니다. 예를 들어

Collections.eachCollections.map를 보라 :

var _ = require('underscore'); 

var result = // your json blob here 

var myRefs = _.map(results, function(value, key) { 
    return value.info.refTwo; 
}; 
// myRefs contains the two arrays from results[0].info.refTwo from results[1].info.refTwo now 

// Or with each: 
_.each(results, function(value, key) { 
    console.log(value.info.refTwo); 
} 

// Naturally you can nest, too: 
_.each(results, function(value, key) { 
    _.each(value.info.refTwo, function(innerValue) { // the key parameter is optional 
    console.log(value); 
    } 
} 

편집 : 당신은 물론 그러나 나는 그럼에도 불구하고 밑줄을 살펴 가지고 권하고 싶습니다, 가브리엘 라마에 의해 제안 된 foreach 문이 방법을 사용할 수 있습니다.

+0

신속한 답변을 보내 주셔서 감사합니다. – fearhsonic

2

당신은 underscore 또는 lodash은 기능적인 방법으로 그것을 할 사용할 수 있습니다

+0

다른 방법을 제공해 주셔서 감사합니다. 나는 뒤따라 가서 읽어야한다. – fearhsonic