排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
分类:
前端
删除数组中指定的元素,原理上是不能直接删除指定的元素 要是可以直接删除的话绝对又bug 但是可以灵活的应用。
自定义函数删除:只适用在js,如果想在ts里搞这种类似的写法 自己去写
首先可以给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');
输出结果: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就被删掉了撒 我的天啊 这种方法困扰了我一个下午
评价