时间:2021-05-26
我们知道JScript给我们提供了一个内置的数组对象Array。Array对象除了提供了constructor、length和prototype外,还默认提供了13个方法:concat、join、pop、push、reverse、shift、slice、sort、splice、toLocaleString、toString、unshift和valueOf,可是没有提供delete方法。
要是熟悉JavaScript的话,会马上说,系统提供了一个delete操作,可以用来删除数组中的元素。对,JS系统里确实有一个delete可以删除数组中的元素。可是这个删除很难用,它确实可以删除元素,可是它却不更新Array对象的元素计数器。例如我们执行:
varary=['a','b','c'];
deleteary[1];
如果正确的执行删除后,我们希望会得到一个新的数组,他有两个元素['a','c'],长度为2。可是执行完后我们确实是得到了两个元素['a','c']的数组,可是这个新数组的长度ary.length居然还是3!。同时我们执行ary.toString()将得到"a,,c",这也表明数组的计数器还是3,因为Array的toString()实际上执行的是Array.join(',')。
这样的删除在我们使用for(;;)遍历数组的时候,将会非常的郁闷,我们可能很容易就可能被一个undefined的值搞死掉了。那么怎么才能获得删除数组元素后同步数组的大小呢?由于Array本身提供的pop和shift两个函数可以"真正的"删除数组的元素,所以我们可以使用它们来自己扩充一个remove函数。
但是pop和shift只能从数组的两端删掉元素,所以我们在删除之前需要对数组做一些整理,实现remove方法的代码如下:
Array.prototype.remove=function(obj)
{
for(vari=0;i<this.length;++i)
{
if(this[i]==obj)
{
if(i>this.length/2)
{
for(varj=i;j<this.length-1;++j)
{
this[j]=this[j+1];
}
this.pop();
}
else
{
for(varj=i;j>0;--j)
{
this[j]=this[j-1];
}
this.shift();
}
break;
}
}
};
移动整理数组的目的只是为了删除元素后不改变剩余元素的彼此相对位置,否则只用把需要删除的元素swap到两端pop或shift以下就可以了。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
//JSArray.reverse将数组元素颠倒顺序 //在JavaScript中,Array对象的reverse()方法将颠倒(反转)数组中元素
以下公共方法支持列表,元组,字典,字符串。内置函数Python包含了以下内置函数:函数描述备注len(item)计算容器中元素个数del(item)删除变量de
本节内容:js删除Array数组中指定元素方法一,/**方法:Array.remove(dx)通过遍历,重构数组*功能:删除数组元素.*参数:dx删除元素的下标
当array容器创建完成之后,最常做的操作就是获取其中的元素,甚至有时还会通过循环结构获取多个元素。本节就对获取容器中元素的方法做个汇总。访问array容器中单
本文实例总结了JavaScript数组Array对象增加和删除元素方法。分享给大家供大家参考。具体分析如下:pop方法移除数组中的最后一个元素并返回该元素。ar