我有一个看起来像这样的对象:
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方法可以做到这一点?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
正如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