如何从数组中删除对象,用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' });