0

我什至不知道我是否使用适当的术语来描述所有这些,但我正在尝试使用 API 来制作一个非常基本的测试应用程序。这就是我的例子中一些奇怪的词的来源。

无论如何,这就是我所拥有的,控制台日志会在一个大列表中返回每只动物:

        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 循环之外的“输出”变量。将 console.log 置于 while 循环之外仅返回 1 只动物:

        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?我需要先把它放在一个数组中还是什么?我怎么做?

4

1 回答 1

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
于 2013-06-18T15:45:38.017 回答