javascript 删除数组元素和清空数组的简单方法


Posted in Javascript onFebruary 24, 2017

javascript 删除数组元素和清空数组的简单方法

一、清空数组

var ary = [1,2,3,4]; 
ary.splice(0,ary.length);//清空数组 
console.log(ary); // 输出 [],空数组,即被清空了

二、删除数组元素

var ary = [1,2,3,4]; 
ary.splice(0,1);
或 ary.splice($.inArray(2, ary), 1); 其中$.inArray(2, ary)用来查找某元素在数组中的索引位置。

三,js 删除数组几种方法

var arr=[‘a','b','c'];

若要删除其中的'b',有两种方法:

**1,**delete方法:delete arr[1]

这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用

for(index in arr)
{
 document.write('arr['+index+']='+arr[index]);
}

这种遍历方式跳过其中undefined的元素

* 该方式IE4.o以后都支持了

2,数组对象splice方法:arr.splice(1,1);

这种方式数组长度相应改变,但是原来的数组索引也相应改变

splice参数中第一个1,是删除的起始索引(从0算起),在此是数组第二个元素

第二个1,是删除元素的个数,在此只删除一个元素,即'b';

此时遍历数组元素可以用普通遍历数组的方式,比如for,因为删除的元素在

数组中并不保留

该方法IE5.5以后才支持
值得一提的是splice方法在删除数组元素的同时,还可以新增入数组元素

比如arr.splice(1,1,'d','e'),d,e两个元素就被加入数组arr了

结果数组变成arr:'a','d','e','c' 

另外,JavaScript通过设置数组的length属性来截断数组,是惟一一种缩短数组长度的方法。

如果使用delete运算符来删除数组中元素,虽然那个元素变成未定义的,但是数组的length属性并不改变两种删除元素,数组长度也改变的方法。

/*
  * 方法:Array.remove(dx)
  * 功能:删除数组元素.
  * 参数:dx删除元素的下标.
  * 返回:在原数组上修改数组
*/
//经常用的是通过遍历,重构数组.
Array.prototype.remove=function(dx)
{
if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++)
{
if(this[i]!=this[dx])
{
this[n++]=this[i]
}
}
this.length-=1
 }
 a = ['1','2','3','4','5'];
 alert("elements: "+a+"nLength: "+a.length);
 a.remove(0); //删除下标为0的元素
 alert("elements: "+a+"nLength: "+a.length);
/*
  * 方法:Array.baoremove(dx)
  * 功能:删除数组元素.
  * 参数:dx删除元素的下标.
  * 返回:在原数组上修改数组.
  */
 //也可以用splice来实现.
 Array.prototype.baoremove = function(dx)
 { // 3water.com
if(isNaN(dx)||dx>this.length){return false;}
this.splice(dx,1);
 }
 b = ['1','2','3','4','5'];
 alert("elements: "+b+"nLength: "+b.length);
 b.baoremove(1); //删除下标为1的元素
 alert("elements: "+b+"nLength: "+b.length);

在IE5或更低的版本中,JavaScript的Array(数组)对象并未提供现成的删除数组元素的方法。在IE5.5+的版本中,虽然有splice方法,但是并不是删除某一项(或几项),而仅仅是将某一项(或几项)的值清除,也就是说该项仍然存在,数组的长度并没有改变。

事实上,可以自己为数组增加一个删除方法(注意,这里指的是将数组的某一项真正的从数组成员中移除)。或许,会想到用循环来为数组重新赋值,这样做当然可以,但效率很低。

以下介绍利用Array对象的两个方法slice、concat来自定义删除数组的方法。

Array.prototype.del=function(n) { //n表示第几项,从0开始算起。
//prototype为对象原型,注意这里为对象增加自定义方法的方法。
 if(n<0) //如果n<0,则不进行任何操作。
return this;
 else
return this.slice(0,n).concat(this.slice(n+1,this.length));
/*
 concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
 这里就是返回this.slice(0,n)/this.slice(n+1,this.length)
 组成的新数组,这中间,刚好少了第n项。
 slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。
*/
}
//自己增加的方法
var test=new Array(0,1,2,3,4,5);
test=test.del(3); //从0算起,删除第4项。
alert(test);

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
百度 popup.js 完美修正版非常的不错 脚本之家推荐
Apr 17 Javascript
Mootools 1.2教程(3) 数组使用简介
Sep 14 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
Aug 13 Javascript
JavaScript语言对Unicode字符集的支持详解
Dec 30 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
Feb 24 Javascript
关于javascript作用域的常见面试题分享
Jun 18 Javascript
详解前端路由实现与react-router使用姿势
Aug 07 Javascript
Angularjs cookie 操作实例详解
Sep 27 Javascript
不使用 JS 匿名函数理由
Nov 17 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
Aug 28 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
Jun 18 Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 Javascript
JavaScript基本类型值-Number类型
Feb 24 #Javascript
AngularJS Toaster使用详解
Feb 24 #Javascript
js获取隐藏元素的宽高
Feb 24 #Javascript
js css自定义分页效果
Feb 24 #Javascript
jQuery快速高效制作网页交互特效
Feb 24 #Javascript
Angular.js自定义指令学习笔记实例
Feb 24 #Javascript
利用原生JS与jQuery实现数字线性变化的动画
Feb 24 #Javascript
You might like
做一个有下拉功能的留言版
2006/10/09 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
微信红包随机生成算法php版
2016/07/21 PHP
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
2017/06/11 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
js new Date()实例测试
2019/10/31 Javascript
python利用socketserver实现并发套接字功能
2018/01/26 Python
python线程中同步锁详解
2018/04/27 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
const和static readonly区别
2013/05/20 面试题
网站设计师的岗位职责
2013/11/21 职场文书
高中语文教学反思
2014/01/16 职场文书
2014年元旦活动方案
2014/02/15 职场文书
法人代表资格证明书
2015/06/18 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers