怎么在javascript中删除数组元素?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强> javascript删除数组元素的方法:强>
<强> 1,长度属性强>
javascript中数组的长度属性非常有特点一一它不是只读的,因此,可以通过设置这个属性来达到从数组的末尾移除项或添加新项的目的。
var colors =, (“red",,“blue",,“grey"];,//,创建一个包含3个字符串的数组 colors.length =, 2; console.log(颜色[2]);,//,未定义的
<强> 2,删除关键字强>
JavaScript提供了一个删除关键字用来删除(清除)数组元素。
var colors =, (“red",,“blue",,“grey",,“green"]; delete 颜色[0]; console.log(颜色);,//,(未定义,“blue",,“grey",,“green"]
要注意的是,使用删除删除元素之后数组长度不变,只是被删除元素被置为未定义的了。
<强> 3,pop()栈方法强>
JavaScript中数组的对象提供了一个pop()栈方法用于弹出并返回数组中的最后一项,某种程度上可以当做删除用。
栈数据结构的访问规则是费罗(第一次在去年,先进后出),栈操作在栈顶添加项,从栈顶移除项,使用pop()方法,它能移除数组中的最后一项并返回该项,并且数组的长度减1 .
var colors =, (“red",,“blue",,“grey"]; var color =, colors.pop (); console.log(颜色);,//,“grey" console.log (colors.length);,//, 2
可以看的出,在调用pop()方法时,数组返回最后一项,即“灰色”,数组的元素也仅剩两项。
<强> 4,转变()队列方法强>
JavaScript中数组的对象提供了一个转变()队列方法用于弹出并返回数组中的第一项,某种程度上也可以当做删除用。
队列数据结构的访问规则是FIFO(先进先出,先进先出),队列在列表的末端添加项,从列表的前端移除项,使用转移()方法,它能够移除数组中的第一个项并返回该项,并且数组的长度减1 .
var colors =, (“red",,“blue",,“grey"]; var color =, colors.shift (); console.log(颜色);,//,“red" console.log (colors.length);,//, 2
可以看的出,在调用转移()方法时,数组返回第一项,即“红色”,数组的元素也仅剩两项。
<强> 5,拼接()操作方法强>
在JavaScript数组的对象中提供了一个接头()方法用于对数组进行特定的操作.splice()恐怕要算最强大的数组方法了,他的用法有很多种,在此只介绍删除数组元素的方法。在删除数组元素的时候,它可以删除任意数量的项,只需要指定2个参数:要删除的第一项的位置和要删除的项数。
var colors =, (“red",,“blue",,“grey"]; var color =, colors.splice (0, 1); console.log(颜色);,//,“red" console.log(颜色);,//,(“blue",,“grey"]
可以看的出,在调用了拼接(0,1)方法时,数组从第一项开始,删除了一项。
<强> 6,迭代方法强>
所谓的迭代方法就是用循环迭代数组元素,发现符合要删除的项则删除。用的最多的地方,可能是当数组中的元素为对象的时候,可以根据对象的某个属性(例如ID)来删除数组元素。
第一种用最常见的ForEach循环来对比元素找到之后将其删除。
var colors =, (“red",,“blue",,“grey"]; colors.forEach(函数(指数项,还以为;arr), { ,,,如果(item ===,“red"), { ,,,,,,,arr.splice(指数,1); ,,,} });
可以看到这里还要配合拼接()方法去实现删除,循环只是为了找到特定的元素。另外一种思路是循环将不需要删除的元素推入到新的数组中,也能达到假性删除特定元素的目的。
第二种我们用循环中过滤器的方法。
var colors =, (“red",,“blue",,“grey"]; 时间=colors colors.filter(函数(项),{ ,,,return item !=,“red" }); , console.log(颜色);,//,(“blue",,“grey"]
代码很简单,找出元素不是红色的项数返回给颜色(其实是得到了一个新的数组,并不是在原数组上进行删除操作),一定程度上也算是达到了删除特定元素的目的。
<强> 7,原型原型方法强>
可以通过在数组的原型上添加方法来达到删除的目的。