假设我有以下对象数组:
var travelers = [
{
"name":"ana",
"lastname":"gomez"
},
{
"name":"juan",
"lastname":"gomez"
},
{
"name":"luis",
"lastname":"gomez"
},
{
"name":"pedro",
"lastname":"gomez"
}
];
我想知道是否有办法在纯JavaScript或jQuery中通过输入要删除的对象的位置从数组中删除对象。
您可以使用拼接:
句法:
例如,如果您想删除数组的第三个元素:
数组看起来像这样:
这样做的好处
splice
是您可以获得一个包含已删除内容的子数组,即,如果您愿意,可以将其保存以备后用:该变量
elementoEliminado
将包含:就我而言,我曾多次将其用作一种重定位器,例如,如果您想将第一个对象作为一种旋转传递给最后一个对象:
虽然我确信有更好的方法。
另一种选择是使用delete运算符,但这实际上是删除属性:
句法:
例子:
现在,如果您想访问第一个元素,它将返回
undefined
,但索引存在,不像splice
:您可以使用多种方法从中删除元素:
如果要从 x 位置删除元素,请使用:
你也可以检查一下:JavaScript Array Reference
有几种方法可以删除 javascript 中的元素。
Array.prototype.splice
要使用此方法,必须知道要删除的元素的索引。
Array.prototype.filter
这个方法是在 EcmaScript 5 中引入的,使用 filter
EcmaScript 5 的版本:
EcmaScript 2015 版本:
在 Javascript 中有 operator
delete
,它从对象中删除一个属性(特别是,还可以删除数组中的一个元素)。问题是尽管它从数组中删除了元素,但它并没有改变同一个数组的其他索引。例如: