如何在Javascript中完全删除数组中的一个对象?

3

我一直在使用以下代码:

formData.objectiveDetails.push(emptyObjectiveDetail);

这将一个新的空的emptyObjectiveDetail对象推到名为objectiveDetails的数组的末尾。

例如,如果objectiveDetails数组包含13个对象,那么如何删除位置5的对象?我假设我可以将其设置为null,但我想要做的是完全删除它,使数组的长度变为12。

这可能与主题无关,但我一直在考虑添加underscore.js。这是可以使用underscore完成的吗?

3个回答

5
formData.objectiveDetails.splice(5, 1)

第一个参数是数组的索引,第二个参数是从该索引开始要删除的项目数。


5
您可以使用splice从数组中删除对象。操作如下:
formData.objectiveDetails.splice(5, 1)

好的,看起来不错。所以我猜这里真的不需要下划线。如果我使用下划线,会有相应的等价物吗? - Alan2

1
使用underscore.js
objectiveDetails = _.without(objectiveDetails, _.findWhere(arr, {id: 5}));

非常感谢。实际上,使用下划线看起来比不使用更加复杂。如果你在做这个,你会使用splice还是underscore? - Alan2
如果你只是需要这个特定操作,我会选择splice。但是如果你需要更具体的函数帮助程序,那么我会添加underscore.js。 - geekchic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接