如何使用 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(result) 的输出:

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

有人能帮我吗?谢谢!

原文由 Fábio Zangirolami 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 980
2 个回答
require('lodash')()

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

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

删除它。

原文由 SLaks 发布,翻译遵循 CC BY-SA 3.0 许可协议

_.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"}]
 <script src="https://cdn.jsdelivr.net/lodash/4.14.2/lodash.min.js"></script>

原文由 Stanislav Ostapenko 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题