开发者社区 问答 正文

如何使用lodash从列表中删除元素?

我有一个看起来像这样的对象:

var obj = { "objectiveDetailId": 285, "objectiveId": 29, "number": 1, "text": "x", "subTopics": [{ "subTopicId": 1, "number": 1 }, { "subTopicId": 2, "number": 32 }, { "subTopicId": 3, "number": 22 }] } var stToDelete = 2; 我已经lodash在我的应用程序中安装了其他东西。有没有一种有效的方法可用于从对象中lodash删除条目:{"subTopicId":2, "number":32}obj

还是有一种JavaScript方法可以做到这一点?

展开
收起
保持可爱mmm 2020-02-06 23:20:17 565 分享 版权
1 条回答
写回答
取消 提交回答
  • 正如lyyons在评论中所指出的那样,更惯用和lo琐的方式是使用_.remove,例如

    _.remove(obj.subTopics, { subTopicId: stToDelete }); 除此之外,还可以传递谓词函数,其结果将用于确定是否必须删除当前元素。

    .remove(obj.subTopics, function(currentObject) { return currentObject.subTopicId === stToDelete; }); 另外,您可以通过过滤旧数组来创建一个新数组,.filter并将其分配给同一对象,如下所示

    obj.subTopics = _.filter(obj.subTopics, function(currentObject) { return currentObject.subTopicId !== stToDelete; }); 要么

    obj.subTopics = _.filter(obj.subTopics, {subTopicId: stToKeep});

    问题来源于stack overflow

    2020-02-06 23:20:42
    赞同 展开评论
问答分类:
问答地址: