
离线 TA的专栏
- 打卡等级:即来则安
- 打卡总天数:21
- 打卡月天数:0
- 打卡总奖励:274
- 最近打卡:2025-04-21 07:48:29
|
本文是小编针对JS删除数组里的某个元素这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容:
删除数组指定的某个元素
js删除数组中某一项或几项的几种方法 http://bbs.yzwlo.com/article/154737.htm
首先可以给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' ,就可以使用: 删除的数组的某一项
splice(index,len,[item]) 注释:该方法会改变原始数组。
splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值
index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空
如:arr = ['a','b','c','d']
删除- //删除起始下标为1,长度为1的一个值(len设置1,如果为0,则数组不变)
- var arr = ['a','b','c','d'];
- arr.splice(1,1);
- console.log(arr);
- //['a','c','d'];
- //删除起始下标为1,长度为2的一个值(len设置2)
- var arr2 = ['a','b','c','d']
- arr2.splice(1,2);
- console.log(arr2);
- //['a','d']
复制代码 替换- //替换起始下标为1,长度为1的一个值为‘ttt',len设置的1
- var arr = ['a','b','c','d'];
- arr.splice(1,1,'ttt');
- console.log(arr);
- //['a','ttt','c','d']
- var arr2 = ['a','b','c','d'];
- arr2.splice(1,2,'ttt');
- console.log(arr2);
- //['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt',len设置的1
复制代码 添加 ---- len设置为0,item为添加的值- var arr = ['a','b','c','d'];
- arr.splice(1,0,'ttt');
- console.log(arr);
- //['a','ttt','b','c','d'] 表示在下标为1处添加一项'ttt'
复制代码delete方法删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变 - var arr = ['a','b','c','d'];
- delete arr[1];
- arr;
- //["a", undefined × 1, "c", "d"] 中间出现两个逗号,数组长度不变,有一项为undefined
复制代码以上这篇JS删除数组里的某个元素方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持晓枫资讯。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:  进行删除处理。
4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
|