2013-06-27 4 views
0

В цикле Javascript для for, возможно ли передать базовую коллекцию вместо массива? Например: в примере кода ниже schools - это коллекция, а не массив. Как это возможно?Использование коллекций в цикле 'For'?

var selectedSchool; 
var addClasses = function(schools){ 
    selectedSchool = Alloy.Collections.schools.at(0); 
     for(var i = 0; i < schools.length; i++){ 
    var school = Backbone.Collections.schools.at(i); 
    var label = Ti.UI.createLabel({ 
     text: schools.get('name'), 
     height:'auto', 
    }; 

Вот где schools определяется как совокупность в school модели:

exports.definition = { 
    config : { 
    "defaults": { 
    "title": "-", 
    "description": "-" 
    }, 
    "adapter": { 
    "type": "rest", 
    "collection_name": "schools", 
    "base_url" : "/schools/", 
    } 
}, 

extendCollection: function(Collection) {   
    _.extend(Collection.prototype, { 
     // Extend, override or implement Backbone.Collection 
       urlRoot: '/schools/', 
       name: 'schools', 
    }); 

    return Collection; 
} 

}

Любая помощь будет очень дорого ценится.

+0

В заголовке цикла вы набрали только «школы», но в теле цикла это «Backbone.Collections.schools». Что он? Это так? Некоторый код может быть полезен, потому что иначе мы не можем видеть контекст. – Pointy

+0

Это пример кода, который я пытаюсь интерпретировать, я понял, что «школы» были аббревиатурой «Backbone.Collections.schools», применимы только для циклов –

+0

Почему бы не использовать ['_.each'] (http: /underscorejs.org/#each)? –

ответ

0

Возможно, у вас может быть коллекция, чтобы преобразовать ее в массив, выполнить свою работу и затем преобразовать ее обратно в коллекцию?

0

Вы можете использовать петлю for для всего, что хотите. В действительности они не имеют ничего общего с массивами, кроме того, что обычно используется цикл for для итерации элементов массива. Суть вашего вопроса заключается в том, имеет ли объект «школы» атрибут «длина». Если это так, и если значение представляет собой число, тогда нет никаких проблем.