通常,我需要遍历Ember.ArrayProxy对象的内容。
例1 ,我需要构建一个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(',');
例2 ,我需要构建一个原始对象数组(不是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
});
}
问题:有更好的方法吗? “while( - loc> = 0)”对我来说似乎很糟糕。
答案 0 :(得分:8)
Ember.ArrayProxy提供了许多友好的功能(通过Ember.Array,Ember.Enumerable,......)。使用“forEach”通常可以避免循环。在第二个示例中,您可以考虑使用“map”。 这是Ember.ArrayProxy documentation的链接。 请务必查看:Ember.Array和Ember.Enumerable
编辑:
例如,假设id的顺序不相关,可以写下第一个例子:
var idsList = myArrayProxy.mapProperty('id').join(',');