我參考的例子here。我如何獲得最大ID?如何從MemoryStore獲取最大「ID」?
0
A
回答
1
MemoryStore
簡單地持有一些任意的數據,當我需要獲得最大的ID,我遍歷所有元素:
var data = store.data
var maxId = 1
var idField = 'id'
for (var i=0;i<data.length;i++) {
var row = data[i]
if (row[idField] && row[idField] > maxId)
maxId = row[idField]
}
2
有很多方法可以做到這一點。例如,您可以進行排序基於ID的存儲和獲得的第一個元素,例如:
store.query({ }, {
sort: [{
attribute: "id",
descending: true
}]
})[0].id;
在這個例子中它查詢的所有對象的商店裏面,在ID(降序)對它們進行排序。這顯然意味着第一個元素具有最高的ID,所以您可以獲取該項目並檢索ID屬性。
好處在於它只使用Dojo商店API,這意味着它可以在任何實現了dojo/store
API的商店中使用,例如dojo/store/Memory
。
另一個解決方案是通過自己搜索ID,你可以做到這一點的方式盧卡斯在his answer做了,但是如果你使用store.data
這意味着它只能與dojo/store/Memory
工作,你訪問屬性你不應該訪問。
所以要自己尋找它,你可以使用:
require([ "dojo/store/Memory", "dojo/_base/array" ], function(Memory, arrUtils) {
var maxId = null;
arrUtils.forEach(store.query({}), function(obj) {
if (maxId === null || (obj !== null && obj.id > maxId)) {
maxId = obj.id;
}
});
});
這裏會發生什麼事是,我經歷了店內的每個對象,然後我檢查是否maxId
是null
(=從未設置),或者如果對象ID大於maxId
,如果這是真的,那麼我們用當前對象的ID替換maxId
。
相關問題
- 1. 如何從MySQL表中的第一個ID獲取最大ID?
- 2. 如何從函數中獲取正確的最大id和最小id?
- 3. 如何從最大ID
- 4. 如何從Jmeter中的相關ID中獲取最大值?
- 5. 如何查詢從varchar類型獲取最大ID?
- 6. 如何在mysql中獲取相應的最大和最小ID?
- 7. 如何從兩個最大值中獲取最大值
- 8. 如何獲得最大ID的項目?
- 9. 如何從iframe獲取id?
- 10. 如何從URL獲取ID?
- 11. 如何從DropDownList獲取ID?
- 12. 如何從dropdownlist獲取ID?
- 13. 通過內部連接獲取最高ID並最大ID
- 14. 從NSMutableArray獲取最大值
- 15. 如何查詢從MySQL的最大ID?
- 16. 如何獲取Firebase數據庫中項目的最大ID?
- 17. 如何獲取MAX數據,其中最大ID
- 18. 如何在創建新記錄之前獲取最大ID值?
- 19. 如何以最大的ID獲取數據
- 20. 如何獲取最後插入的ID?
- 21. 如何獲得2最大的ID從表中的MySQL
- 22. mysql:如何從重複的行組中獲取最大id 2列?
- 23. 如何從varchar類型和數值中查詢獲取最大id?
- 24. 如何在數據庫表爲空時從數據庫獲取最大ID?
- 25. 從核心數據和sqlite獲取最大ID
- 26. 從我的XML文件中獲取最大ID?
- 27. 無法從數據庫中獲取最大ID
- 28. Mongoose:在插入新行之前從表中獲取最大ID
- 29. 如何從JVM獲取堆和permgen的最大大小?
- 30. 在獲取最大ID時獲取無效標識符錯誤
完美的作品!我很好奇下面這行是如何工作的:'if(row [idField] && row [idField]> maxId)'。你能詳細解釋一下嗎? –
它也適用,如果我只是做'if(row [idField]> maxId)''。 –