js删除数组元素、清空数组的简单方法(必看)


Posted in Javascript onJuly 27, 2016

一、清空数组

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);

例2,

/*
  * 方法: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);

以上代码,仅灵活运用了Array对象的两个方法,便实现了基本要求,不错。

以上这篇js删除数组元素、清空数组的简单方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
Apr 23 Javascript
最短的IE判断var ie=!-[1,]分析
May 28 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
Jun 23 Javascript
js中string和number类型互转换技巧(分享)
Nov 28 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
Sep 14 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
Nov 23 Javascript
详解服务端预渲染之Nuxt(介绍篇)
Apr 07 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 Javascript
jQuery实现日历效果
Sep 11 jQuery
javascript简单实现等比例缩小图片的方法
Jul 27 #Javascript
第一次接触神奇的Bootstrap网格系统
Jul 27 #Javascript
Js删除数组中某一项或几项的几种方法(推荐)
Jul 27 #Javascript
javascript获取网页各种高宽及位置的方法总结
Jul 27 #Javascript
第一次接触神奇的Bootstrap表单
Jul 27 #Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 #Javascript
基于jQuery实现页面搜索功能
Mar 26 #Javascript
You might like
用php+mysql一个名片库程序
2006/10/09 PHP
PHP5 安装方法
2007/01/15 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
Add a Table to a Word Document
2007/06/15 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
2016/12/08 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
详解python中的闭包
2020/09/07 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
教育学专业毕业生的自我评价
2013/11/21 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
《学棋》教后反思
2014/04/14 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
圣诞晚会主持词
2015/07/01 职场文书