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

Fáb*_*ami 7 javascript node.js lodash

我正在尝试使用LoDash从数组中删除对象.

在server.js(NodeJS)中

var lodash = require('lodash')();

var rooms = [
  { channel: 'room-a', name: 'test' },
  { channel: 'room-b', name: 'test' } 
]
Run Code Online (Sandbox Code Playgroud)

我要尝试两个命令而不是工作:

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

在console.log(结果)中:

LodashWrapper {
  __wrapped__: undefined,
  __actions__: [ { func: [Function], args: [Object], thisArg: [Object] } ],
  __chain__: false,
  __index__: 0,
  __values__: undefined }
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?谢谢!

Sta*_*nko 15

_.remove()是个不错的选择.

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"}]
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/lodash/4.14.2/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)


Ada*_*uch 6

在这种情况下我会选择拒绝().更少的代码:

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


SLa*_*aks 3

require('lodash')()
Run Code Online (Sandbox Code Playgroud)

调用该lodash函数(通过())创建一个包装 的 LoDash 对象undefined

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

删除它。