如何获得max ';id ';从MemoryStore
How to get max "id" from MemoryStore?
我指的是这里的例子。如何得到最大id?
有很多方法可以做到。例如,您可以根据ID对存储进行排序,并获得第一个元素,例如:
store.query({ }, {
sort: [{
attribute: "id",
descending: true
}]
})[0].id;
在这个例子中,它查询存储中的所有对象,按ID(降序)排序。这显然意味着第一个元素具有最高的ID,因此您可以获取该元素并检索ID属性。
这样做的好处是它只使用Dojo存储API,这意味着它可以在任何实现dojo/store
API的存储上工作,例如dojo/store/Memory
。
另一个解决方案是自己搜索ID,你可以像Lukasz在他的回答中那样做,但是如果你使用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
。
MemoryStore
只是保存一些任意数据,当我需要获得max 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]
}
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- difference between '$(<%= DDL.ID %>) & $('
- 使用Javascript获取所选选项ID
- 根据id将json数组组合为一个json数组
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 对id以某个字符串开头的元素进行计数
- 如果元素's的ID以数字开头
- 通过id和class属性获取元素
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 使用当前日期生成随机id
- Javascript-ID冲突的几率
- Href:当前DIV中的目标ID
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Javascript复选框函数:;缺少:在属性id之后"
- Twitter引导程序Typeahead-Id&标签
- 如何与特定ID交谈
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- 如何在速度模板中获取LiferayPortlet实例id
- 谷歌地图可以't添加正确的标记ID
- 如何获得max ';id ';从MemoryStore