截断lowdb中的数组

时间:2018-03-06 22:34:40

标签: node.js lodash

我正在使用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

如何在'数据库'?

中正确截断我的数组

1 个答案:

答案 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