如何从数组中删除对象,用lodash?

我试图使用LoDash从数组中删除一个对象。

在server.js(NodeJS)

var lodash = require('lodash')(); var rooms = [ { channel: 'room-a', name: 'test' }, { channel: 'room-b', name: 'test' } ] 

我去用两个命令去尝试,而不是工作:

 var result = lodash.find(rooms, {channel: 'room-a', name:'test'}); var result = lodash.pull(rooms, lodash.find(rooms, {channel: 'room-a', name:'test'})); 

在console.log(结果)中:

 LodashWrapper { __wrapped__: undefined, __actions__: [ { func: [Function], args: [Object], thisArg: [Object] } ], __chain__: false, __index__: 0, __values__: undefined } 

有人能帮我吗? 谢谢!

 require('lodash')() 

调用lodash函数(by () )将创build一个包装undefined的LoDash对象。

那不是你想要的; 你想要lodash函数本身,其中包含静态方法。

删除。

_.remove()是一个不错的select。

 var rooms = [ { channel: 'room-a', name: 'test' }, { channel: 'room-b', name: 'test' } ]; _.remove(rooms, {channel: 'room-b'}); console.log(rooms); //[{"channel": "room-a", "name": "test"}] 
 <script src="https://cdn.jsdelivr.net/lodash/4.14.2/lodash.min.js"></script> 

在这种情况下,我会去拒绝() 。 较less的代码:

 var result = _.reject(rooms, { channel: 'room-a', name: 'test' });