2014-03-14 41 views
0

我只想簡單地從我的Ember.js項目中的str.split()獲取原始值,而不是獲取原始分割價值觀,我得到了燼寶的原型!如何從Ember js項目中的str.split()獲取原始值

for(var num in "1,2,3,4".split(",")){ 
    console.log(num); 
} 

結果(無灰燼):

0 
1 
2 
3 

結果(與Ember)

0 
1 
2 
3 
nextObject 
firstObject 
lastObject 
contains 
getEach 
setEach 
mapBy 
mapProperty 
reject 
filterBy 
filterProperty 
rejectBy 
rejectProperty 
find 
findBy 
findProperty 
everyBy 
everyProperty 
any 
anyBy 
someProperty 
invoke 
toArray 
compact 
without 
uniq 
[] 
addEnumerableObserver 
removeEnumerableObserver 
hasEnumerableObservers 
enumerableContentWillChange 
enumerableContentDidChange 

她e's my jsbin .. http://jsbin.com/rodul/1/edit?html,js,console

感謝您的幫助!

+0

只要不使用'for' -'in',它是一個JavaScript的不好的部分(現在人們知道我所指的是哪本書:-)你不能依賴於結果,就像你經歷的那樣。 – davidkonrad

+0

這是一種有趣的行爲,沒有幫助,但謝謝提出的問題。 – alexmac

回答

0

這是因爲你的每財產的split()返回數組中的迭代和灰燼增添了不少的Array.prototype範圍,使你能夠得到firstObjectlastObject容易(例如) - 見http://emberjs.com/api/classes/Ember.Array.html以獲取更多信息。

長話短說:如果您使用forEach或簡單的for循環,您將看到預期的行爲。看到這裏你更新jsbin http://jsbin.com/dixihiqi/1/

在一般情況下,我會使用對象而不是數組a for in ...(不過這只是我)