我一直在试图找出如何到达基本js数组,以便我可以循环它 http://emberjs.com/documentation/#toc_the-enumerable-interface
这个很简单。要简单地将Enumerable转换为数组 将其称为toArray方法。
现在,当我使用1.pre和0.9.8.1运行以下测试时,结果不是我所期望的。
> var msp = ["1","2","3"]
> msp
["1", "2", "3"]
> for (mp_c in msp) console.log(mp_c);
0
1
2
isEnumerable
nextObject
> for (mp_c in msp.toArray()) console.log(mp_c);
0
1
2
isEnumerable
nextObject
我希望它返回一个vanilla数组,没有任何ember属性。 https://github.com/emberjs/ember.js/blob/master/packages/ember-runtime/lib/mixins/enumerable.js#L554
答案 0 :(得分:1)
Ember实际上将方法应用于Array.prototype;意味着这些方法将在站点上的每个数组上(实际上更改了Array对象类,它们不会更改每个实例)。
这实际上发生在很多javascript库中,所以总是最好迭代一下(最好我的意思是,使用像ember这样的库最不易使用)。
for(var mp_c, i=0, j=msp.length; i<j; i++){
mp_c = msp[i];
}
编辑:ij