2013-06-18 2 views
0

이 모든 것을 설명하기 위해 적절한 용어를 사용하고 있는지 알지 못하지만 API를 사용하여 매우 기본적인 테스트 앱을 만들려고합니다. 그것은 나의 예에서 이상한 단어들이 나오는 곳입니다. 어쨌든 while 루프에서 배열을 만드는 방법/가져 오는 방법은 무엇입니까?

이 내가 가진 무엇이며, 콘솔 로그는 큰 목록에 각 동물을 반환

 function listAnimals(){ 
      animals.fetch(function(){ 
      while(animals.hasNextEntity()) { 
       animal = animals.getNextEntity(); 
       var type = animal.get('animal'); 
       var name = animal.get('name'); 
       var gender = animal.get('gender'); 
       var output = 'type: '+type+', name: '+name+', gender: '+gender; 
       console.log(output); 
      } 
      });//fetch 
     }//listAnimals 

그러나, 나는 그 동안 루프의 "출력"변수 외부에 액세스 할 수 있어야합니다 .

 function listAnimals(){ 
      animals.fetch(function(){ 
      while(animals.hasNextEntity()) { 
       animal = animals.getNextEntity(); 
       var type = animal.get('animal'); 
       var name = animal.get('name'); 
       var gender = animal.get('gender'); 
       var output = 'type: '+type+', name: '+name+', gender: '+gender; 
      } 
      console.log(output); 
      });//fetch 
     }//listAnimals 

어떻게 while 루프의 이외의 "출력"결과를 얻을 수는없고, 단지 1 : while 루프에서 CONSOLE.LOG 배치는 1 개 싱글 동물을 반환? 먼저 배열에 넣어야합니까? 어떻게해야합니까?

+0

배열을 생성 한 다음 현재 출력과 객체를 만들고 그것을 배열로 푸시 할 수 있습니다. –

+1

'animal' 객체의 배열을 만드는 것은 IMO를 가장 잘 이해할 수 있습니다. 또는 원하는 속성으로 만 새 객체를 만들 수 있습니다. 출력 문자열 만 저장하는 것은 아닙니다. 단, 데이터를 가지고 다른 작업을 수행하지 않는다면 말입니다. 기술적으로 원하는 것은 무엇이든 할 수 있으며 하나의 긴 문자열을 만들 수 있으며 배열을 사용할 필요가 없습니다. –

+0

[JavaScript 배열 및 사용 방법] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) – Blazemonger

답변

0

그래도 어레이가 정상적으로 작동합니다. 다음과 같이 시도하십시오 :

function listAnimals(){ 
    var arr = []; 
    animals.fetch(function(){ 
     while(animals.hasNextEntity()) { 
      animal = animals.getNextEntity(); 
      var type = animal.get('animal'); 
      var name = animal.get('name'); 
      var gender = animal.get('gender'); 
      var output = 'type: '+type+', name: '+name+', gender: '+gender; 
      arr.push(output); 
     } 
    });//fetch 
    console.log(arr); // This should print out all of your outputs. 
}//listAnimals 
+0

'animals.fetch'는 아마도 비동기식입니다. –

+0

@FelixKling 좋은 지적 - 자바 스크립트에서이 특정 패턴을 본 적이 없지만 일종의 비동기 호출이 될 수 있습니다. 그래서 그것은'fetch' 함수가 어떻게 작동하는지에 달려 있다고 생각합니다 - 완료시 어떤 종류의 이벤트 핸들러가 있다면. –

+0

아, 고마워요! 나는 이것을 어제 알아 내려고 애 쓰면서 몇 시간을 보냈다. 그래도 작동하려면 코드를 약간 변경해야합니다. 주로 출력 변수 대신 ar.push (출력)를 사용했습니다. – Shonna

관련 문제