前言:
这个也许在大多人眼中看是很简单,会的人可能会说这个一个遍历删除的事情,图省事的人就可能会说这个直接百度啊,网上一大堆答案。
那么问题就来了:我就是那个图省事的人,直接网上找答案的那种,猛然发现一个贼牛逼的方法,改变数组原生的方法,如下(不严谨示范):
雷区慎重
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
arr=[1,2,3,4];arr.remove(4); //执行方法
上面方法不推荐啊,最好不要用,后果自负
方法虽然实现了,但是你没事就改原生的方法真的好吗?你能保证你们系统中有关数组操作的不会受影响吗?我只想说你保证个锤子。老老实实的往下看吧!
正确方法
极力推荐这中splice()方法去做:
function removeChildNum(valStr, Array_Data) {
var getReturnData = [];
getReturnData = Array_Data;
for (var i in getReturnData) {
if (valStr + "" == getReturnData[i] + "") {
getReturnData.splice(i, 1);
}
}
return getReturnData;
}
自己定义的方法用起来一点都不慌!!!
延伸扩展(删除子数组)
【基于jquery实现】如何删除子数组或者存在交集数组的相同元素,二话不说直接上代码
//删除子数组,删除含有交集的数组相同元素
function removeChildArr(child_Arr, Array_Data) {
var getReturnData = [];
getReturnData = $.grep(Array_Data, function (v) {
return 0 > $.inArray(v, child_Arr);
}, false);
return getReturnData;
}
验证,有图有真相
最后给各位看官大爷们看个测试效果图,防止你们再说我吹牛B
如果对您有一点点帮助,将是我创作的最大动力,可以的话烦请关注一哈哟,持续为您更新!!!!