JS对数组的操作
来源:互联网 发布:淘宝冲印上传系统 编辑:程序博客网 时间:2024/05/19 02:21
今天实现功能用到了JS删除数组功能,整理记忆一下,方便查看。
方法:Array.PRototype.splice(index,count[, elem1, elem2, ....]);
参数:
index:数组元素的起始下标;(下标从0开始,长度通过.length获得)
count:需要被删除或替换元素的个数;
elems:需要插入到数组中的项;
返回值:返回从数组中被移除的项;
描述:使用Array类型的splice方法可以对数组元素进行插入、替换、删除;该方法将直接影响当前的数组对象 (与.slice(index1,index2)方法不同)并返回被删除后的数组项。
实例:
1、删除元素:
var items = [a,b,c,d,e]; result = items.splice(1,2);
释义:从items数组中删除元素 [b, c],并返回 [b, c] 给result;
2、替换元素:
result = items.splice(1,2,x,y);
释义:2表示替换掉两个从下脚标1开始切包含下脚标1的元素;即x,y替换了items数组中的 [ b , c ],并 返回[ b , c ]给result;
3、插入操作:
result = items.splice(1,0,x,y);
注:记录此方法的原因是因为做项目时有一个功能要循环遍历两个数组,再比较其中的参数是否相等,如果相等就移除其中一个数组中的元素,本身并没有什么难处。就在删除时改变数组的大小,导致数组遍历时出现异常。贴出代码加深 记忆:
for(var i = 0; i < userL.length; i++) { for(var j = 0; j < judgeList.length; j++) { if(userL[i] != undefined && userL[i] != '' && userL[i] != null) { if(userL[i].id == judgeList[j].userId) { //userL.splice(i,1); 这种方式就是改变了数组大小了,导致遍历出错。 userL.splice(i,1,'');//这样方式类似插入,删除后添加'' 进去,不改变数组的大小。 } } } if(userL[i] != undefined && userL[i] != '' && userL[i] != null) { $("#judgeL").append(userList(userL[i])); }}
下面是另一博客中说的比较好的贴过来了。
原文链接:http://caibaojian.com/js-splice-element.html
删除数组指定的某个元素
首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为:
Array.prototype.indexOf = function(val) {for (var i = 0; i < this.length; i++) {if (this[i] == val) return i;}return -1;};
然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素:
代码为:
Array.prototype.remove = function(val) {var index = this.indexOf(val);if (index > -1) {this.splice(index, 1);}};
这样就构造了这样一个函数,比如我有有一个数组:
var emp = ['abs','dsf','sdf','fd']
假如我们要删除其中的fd,就可以使用:
emp.remove('fd');
删除的数组的某一项
splice(index,len,[item]) 注释:该方法会改变原始数组。
viasplice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值原文来自:http://caibaojian.com/js-splice-element.html
index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空
如:arr = ['a','b','c','d']
删除
arr.splice(1,1) //['a','c','d'] 删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变arr.splice(1,2) //['a','d'] 删除起始下标为1,长度为2的一个值,len设置的2
替换
arr.splice(1,1,'ttt') //['a','ttt','c','d'] 替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1arr.splice(1,2,'ttt') //['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1
添加 ---- len设置为0,item为添加的值
//code from http://caibaojian.com/js-splice-element.htmlarr.splice(1,0,'ttt') //['a','ttt','b','c','d'] 表示在下标为1处添加一项'ttt'
2:delete
delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变
如:delete arr[1] //['a', ,'c','d'] 中间出现两个逗号,数组长度不变,有一项为undefined
- JS对数组的操作
- JS对数组的操作
- JS对数组的操作
- JS对数组的操作
- JS对数组的操作
- Js~对数组的操作
- Js~对数组的操作
- Js~对数组的操作
- Js~对数组的操作
- Js~对数组的操作
- js对数组的操作
- JS对数组的操作总结
- PHP、JS对数组的操作
- jquery与js对数组的操作
- js中对数组的操作-------Day49
- js对数组的相关操作
- js中splice对数组的操作
- js对字符串的操作和对数组的管理
- 借助腾讯云CDN开启全站https及问题解决分享
- C语言读取文件,包含字符数字,按字符求数字平均数
- JS干货--Function
- servlet 的servletContext 对象
- 单片机扩展IO口
- JS对数组的操作
- poj1833排列
- 机器视觉之图像入门
- HDU 3336 Count the string
- Android EditText 监听回车键
- Zookeeper的安装和配置
- Eclipse+Maven创建webapp项目
- 解释器模式
- 第十周项目1——二叉树算法库