JS删除数组里的某个元素方法

作者:chichengjunma 时间:2023-07-14 22:45:47 

本文是小编针对JS删除数组里的某个元素这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容:

删除数组指定的某个元素


首先可以给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]) 注释:该方法会改变原始数组。

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

来源:http://blog.csdn.net/chichengjunma/article/details/53966797

标签:JS,删除,数组,元素
0
投稿

猜你喜欢

  • python配置虚拟环境步骤

    2023-10-22 09:34:51
  • Python爬虫如何应对Cloudflare邮箱加密

    2023-10-16 22:25:35
  • FrontPage创建HTML/ASP混合页面

    2008-05-08 14:26:00
  • rs.getrows的使用方法

    2008-04-05 14:01:00
  • python3.6使用urllib完成下载的实例

    2023-08-03 21:21:13
  • SpringBoot Logback日志记录到数据库的实现方法

    2024-01-16 11:58:11
  • .NET 6中System.Text.Json的七个特性

    2024-05-02 17:20:02
  • 解密SQL Server数据库系统的编译

    2009-03-16 17:33:00
  • 利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享

    2024-01-16 17:28:39
  • pycharm内无法import已安装的模块问题解决

    2021-08-28 08:53:17
  • 又为ajax上传工具重新写了一个服务器端上传程序

    2009-12-21 14:30:00
  • 《写给大家看的设计书》阅读笔记之对比原则

    2009-07-15 10:14:00
  • Python3使用requests发闪存的方法

    2021-06-09 16:07:20
  • Yahoo!网站性能最佳体验的34条黄金守则—内容

    2008-05-13 12:14:00
  • 动态刷新 dorado树的js代码

    2024-04-18 09:34:21
  • python数据结构之二叉树的统计与转换实例

    2023-08-11 07:35:48
  • PHP使用laravel邮件服务发送邮件

    2023-05-25 03:48:23
  • js实现适用于素材网站的黑色多级菜单导航条效果

    2024-04-18 10:09:37
  • PyTorch中Tensor的数据统计示例

    2021-03-05 01:04:53
  • 如何使数据库中取出的数据保持原有格式

    2008-11-27 16:16:00
  • asp之家 网络编程 m.aspxhome.com