我参考的例子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)''。 –