0

我一直在试图弄清楚如何到达一个基本的 js 数组,以便我可以遍历它 http://emberjs.com/documentation/#toc_the-enumerable-interface

这个很简单。要将 Enumerable 转换为 Array,只需调用其 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

我希望它返回一个香草数组,没有任何 ember 属性。 https://github.com/emberjs/ember.js/blob/master/packages/ember-runtime/lib/mixins/enumerable.js#L554

4

1 回答 1

1

Ember 实际上将方法应用于 Array.prototype;这意味着这些方法将在站点上的每个数组上(数组对象类实际上已更改,它们不会更改每个实例)。

这实际上发生在很多 javascript 库中,因此最好迭代长度(最好我的意思是,使用 ember 之类的库最不脆弱)。

for(var mp_c, i=0, j=msp.length; i<j; i++){
    mp_c = msp[i];
} 

编辑:ij

于 2012-08-09T20:09:19.597 回答