2012-07-04 8 views
5

Spesso, ho bisogno di passare attraverso il contenuto di un oggetto Ember.ArrayProxy.Emberjs: il modo migliore per scorrere il contenuto di ArrayProxy?

Esempio 1, ho bisogno di costruire un elenco di ID:

var loc = myArrayProxy.get('length') || 0, 
    ids = new Array(), 
    idsList; 

while(--loc >= 0) { 
    var curObject = myArrayProxy.objectAt(loc); 
    ids.push(curObject.id); 
} 
idsList = ids.join(','); 

Esempio 2, Ho bisogno di costruire un array di oggetti primitivi (non Ember.Object):

var loc = myArrayProxy.get('length') || 0, 
    newContent = new Array(); 

while(--loc >= 0) { 
    var curObject = myArrayProxy.objectAt(loc); 
    newContent.push({ 
         id: curObject.id, 
         name: curObject.name 
        }); 
} 

Domanda: c'è un modo migliore per farlo? "While (- loc> = 0)" mi sembra male.

+0

Ora, usando "getEach() "e" forEach() ". La documentazione manca davvero di esempi ... Grazie :) –

risposta

8

Ember.ArrayProxy fornisce molte funzioni amichevoli (tramite Ember.Array, Ember.Enumerable, ...). I loop possono spesso essere evitati usando "forEach". Nel tuo secondo esempio, potresti prendere in considerazione l'utilizzo di "mappa". Ecco un collegamento a Ember.ArrayProxy documentation. Essere sicuri di guardare: Ember.Array e Ember.Enumerable

edit:

Per esempio, supponendo che l'ordine degli ID non è rilevante, il tuo primo esempio potrebbe scrivere:

var idsList = myArrayProxy.mapProperty('id').join(','); 
Problemi correlati