新人借鉴整理,如有不足,请多指正
首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为:
<!--注:该方法仅适用纯字符串的数组,对于含有字符串和对象的混合数组不适用-->
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
<!--对于获取纯字符串的数组中,对应的字符串的索引值还有一个方法-->
arr1.indexOf(str) <!--返回字符串str的索引值-->
arr1.findIndex(function(data) {
return data == str;
});<!--同样返回索引值-->
<!--对于混合数组,获取其中对象的索引值的方法如下:-->
var getArrIndex = function(arr, obj) {
var index = null;
var key = .keys(obj)[0];
arr.every(function(value, i) {
if (value[key] === obj[key]) {
index = i;
return false;
}
return true;
});
return index;
};
然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素:代码为:
<!--第一种方法-->
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
/*
* 第二️种方法
* 方法:Array.baoremove(dx)
* 功能:删除数组元素.
* 参数:dx删除元素的下标.
* 返回:在原数组上修改数组.
*/
Array.prototype.baoremove = function(dx){
if(isNaN(dx)||dx>this.length){return false;}
this.splice(dx,1);
}
/*
* 第三种方法
* 方法:Array.remove(dx) 通过遍历,重构数组
* 功能:删除数组元素.
* 参数:dx删除元素的下标.
*/
Array.prototype.remove=function(dx){
if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++)
{
if(this[i]!=this[dx])
{
this[n++]=this[i]
}
}
this.length-=1
}
这样就构造了这样一个函数,比如我有有一个数组:
var emp = [\'abs\',\'dsf\',\'sdf\',\'fd\']
var arr2 = [{id:1,name:\'lanyan\'},
{id:2,name:\'wanming\'},
{id:3,name:\'tingting\'},
{id:4,name:\'songsong\'},
\'test\',
\'ethos\'];
假如我们要删除其中的 'fd' ,就可以使用:
<!--第一种方法-->
emp.remove(\'fd\');
<!--第二种方法-->
emp.remove(3)
<!--第三种方法-->
var num = getArrIndex(arr2,{id:2,name:\'wanming\'}) <!--返回 1-->
arr2.remove(num)
在对象数组中,根据某个对象的属性值,获取该对象在数组中的下标。
Array.map(item => item.id).indexOf(mealid);
<!--id是查找的属性名,mealid是查找依据的属性值--> 继续阅读与本文标签相同的文章
-
阿里云 MVP 全球闭门会 2019 荣聚云栖小镇,从心出发!
2026-05-18栏目: 教程
-
Spring AOP应用场景你还不知道?这篇一定要看!
2026-05-18栏目: 教程
-
阿里云云数据库RDS如何监控、备份及克隆实例?
2026-05-18栏目: 教程
-
用CSS新属性实现特殊的图片显示效果
2026-05-18栏目: 教程
-
Java描述设计模式(12):外观模式
2026-05-18栏目: 教程
