我尝试删除并修剪列表以构建分页系统
local function createMap(postId, paramDate)
local m = map { id = postId, date = paramDate };
return m;
end
function get(rec, binName, from, to)
if aerospike:exists(rec) then
local l = rec[binName]
if (l == nil) then
return nil
else
local length = #l;
if (length <= 10 and to <=10) then
return l;
elseif (to >= length) then
local drop = list.drop(l, from);
return drop;
else
list.trim(l, to);--Remove all elements at and beyond a specified position in the List.
list.drop(l, from); --Select all elements except the first n elements of the List
return l;
end
end
else
return nil;--end return empty array
end--end else aerospike exists
end
我的列表有这样的结构:
[{"date":"2016-01-02T19:45:00.806Z", "id":"568828bc49017f16659f6978"}, {"date":"2016-01-02T19:44:56.040Z", "id":"568828b849017f16659f6977"},...]
似乎我无法修剪然后删除列表。以21个元素为例:它首先返回元素21到元素13,然后元素21返回元素4,然后元素3返回到元素1
我在node.js中的函数很容易改变'from'和'to'我将'page'从前端发送到node.js并使用这个函数:
var skip = 9 * (page -1);
var lastIndexToReturn = skip + 9 + 1;
所以首先请求来自和'0'和'10',然后是'9'和'19'等 通过使用list.trim和list.drop我认为我可以建立一个分页系统
答案 0 :(得分:1)
VectorDrawable
我最后编写了这个函数:为了确保不会出现列表索引的错误,我得到列表的大小,我将这个大小与我要分页的部分进行比较,以确定要返回的内容:我不要不要遍历整个数组。
当然只有当记录是一个列表时它才有效 注意:确保来自客户端的第一个“from”是1,因为lua数组开始为1