tnblog
首页
视频
资源
登录
不帅~~但是很暖心.....
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

JavaScript、TypeScript数组里的删除指定元素

17273人阅读 2020/4/12 18:13 总访问:342664 评论:1 收藏:0 手机
分类: 前端

删除数组中指定的元素,原理上是不能直接删除指定的元素 要是可以直接删除的话绝对又bug  但是可以灵活的应用。


自定义函数删除:只适用在js,如果想在ts里搞这种类似的写法 自己去写 

首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为:

    Array.prototype.indexOf = function(val) { 

        for (var i = 0i < this.lengthi++) { 
    
          if (this[i] == valreturn i
      
          } 
    
        return -1
    
    }; 

然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素:

    Array.prototype.remove = function(val) { 

          var index = this.indexOf(val); 
      
          if (index > -1) { 
      
          this.splice(index1); 
      
          } 
    
    }; 


这样就构造了这样一个自定义的函数,好像有点含量,比如我有有一个数组:

var emp = ['abs','dsf','sdf','fd'];

假如我们要删除其中的 'fd' ,就可以使用:

emp.remove('fd');

输出结果:console.log(emp)

['abs','dsf','sdf']

ok  被删掉了



splice删除:js或ts都可以

var arr=new Array("aa","bb","cc","dd","ee","ff","gg");

console.log("原数组",arr);//["aa", "bb", "cc", "dd", "ee", "ff", "gg"]

console.log("找到指定元素的下标"arr.indexOf("ff"));//5

arr.splice(arr.indexOf("ff"),1);//后边的1代表删除这个位置开始删除1一个元素

console.log("删除后",arr);console.log("删除后",arr);//["aa", "bb", "cc", "dd", "ee", "gg"]



然后指定元素ff就被删掉了撒  我的天啊 这种方法困扰了我一个下午



评价