我正在使用lowdb,它建立在lodash上。
在lodash中,我可以使用以下内容将我的数组截断为第一个或最后一个n
项:
myarr = _.take(myarr, 5) // or
myarr = _.takeRight(myarr, 5)
使用lowdb,我可能会将更新写为:
db.get('items').push(new_item).write()
但是,我无法截断:
db.get('items').push(new_item).take(10).write() // Will ignore the 'take'
检索值时有效:
db.get('items').take(10).value() // Contains only last 10 items
如何在'数据库'?
中正确截断我的数组答案 0 :(得分:0)
我认为这不可能在一条链上完成,但是绝对可以做到。
let items = db.get('items').push(new_item).takeRight(10).value();
db.set('items', items).write();
或者如果您想要“单线”
db.set('items', db.get('items').push(new_item).takeRight(10).value()).write();
顺便说一句,如果您正在使用push
,而不是takeRight
,就想take
。推将项目追加到数组的末尾。如果要在数组的开头添加新项目,则需要使用unshift
,然后可以使用take
。