鍵對象落後
回答
這不會是可能的
的ECMAScript的對象是無序物業集合ES3 Specs 0列舉的特性
的力學和順序(在第一算法步驟6.A,在第二步驟中7.A)沒有被指定。
在枚舉過程中,可能會刪除枚舉對象的屬性。如果枚舉過程中尚未訪問的屬性被刪除,則不會被訪問。如果在枚舉過程中將新屬性添加到枚舉對象中,則新增屬性不保證在活動枚舉中被訪問。任何枚舉中的屬性名稱都不能被訪問多次。 ES5 Specs
但是你可以做什麼,是你的目標的關鍵陣列上向後遍歷。 不是這意味着你神奇地給對象一個訂單。
var obj = {a: 0, b:1, c:2};
for (var keys=Object.keys (obj),key; key = keys.pop() ;) {
console.log (key) // c, b, a.
}
沒有「前進」和「後退」。 JavaScript中的對象鍵沒有順序。
雖然大多數瀏覽器會按照它們添加的順序遍歷它們,但不能保證,也不是規範的一部分。
所以答案是:不,你不能。
如果你堅持,做到這一點:
var keys = [], key, i;
for (key in object) {
object.hasOwnProperty(key) && keys.push(key);
}
i = keys.length;
while (i--) {
// use object[ keys[i] ]
}
這裏的小提琴:http://jsfiddle.net/MBpcq/
不錯的'&&'技巧。你有每週有條件的語句限制,你不想超過? :-) – Kos
@Kos - 我只是討厭嵌套的括號,並儘量避免他們像瘟疫。 –
這實際上是JS編程中常見的成語(?),我已經看到它在很多地方使用 –
- 1. 對象不脫落
- 2. LibGdx下落的對象
- 3. 段落對象標記
- 4. Django的排序落後外鍵
- 5. PHP:對象的最後一個鍵
- 6. 清除主鍵後,深克隆對象
- 7. clisp,CLOS:重新鍵入對象,稍後
- 8. Django - 在「落後」關係中過濾相關對象
- 9. 將Twitter流複製到對象:我可以落後嗎?
- 10. AttributeError的:「CrossEntropyLoss」對象有沒有屬性「落後」
- 11. 如何創建對象的對象鍵的可變對象鍵?
- 12. 爲對象鍵
- 13. 爲對象鍵
- 14. HashMap對象鍵
- 15. 來自角落的OpenGL移動對象
- 16. 如何搜索對象的段落
- 17. 對象不反映在段落屬性
- 18. 合併兩個段落對象
- 19. Android RelativeLayout將對象放置在角落
- 20. Unity 2D - 通過GameObject墜落的對象
- 21. NHibernate多對多的落後查詢
- 22. FFTW3落後對我不起作用
- 23. 落後消極
- 24. setImage:forState:落後UI
- 25. 「落後」的RequiredFieldValidator
- 26. javascript對象鍵值對
- 27. Json.Net鍵/值對dictonary對象
- 28. 選擇對象鍵
- 29. Javascript對象和鍵
- 30. 訪問對象鍵
向後建議的命令,但對象沒有一個訂單。 – Andy
你打算迭代一個數組嗎?或者實際上屬性?在前一種情況下,您可以使用向下計數for循環'for(var i = arr.length-1; i> = 0; --i){做某事; }' –