上回讲到过对于js数组我们可以用splice来做删除,
但是这只是针对于指定的数组位置,所以我们必须要知道该元素位于这个数组的位置,
才能把这个元素删掉....
那这个问题有时候就会很尴尬了,如果说我不知道这个元素在数组的位置咋办嘞?
那么这里我就在网上找了两个方法,来做一个针对删除某个数组元素的方法
Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) return i; } return -1;};
这个方法很好理解,就是获取这个元素在当前数组中的索引值,
这里用了原型继承,把这个方法加到数组对象里面去了,之后就可以直接调用, 像这样
var arr = [1,2,3,4,5,6];arr.indexOf(3);
对,这样获取到的值就是2,也就是3这个元素在arr数组中的位置
那么既然知道了它的索引值,接下来就好办了
Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); }};
也是原型继承,把这个值给删掉,用的还是splice方法
用起来也很方便,这样
var arr = [1,2,3,4,5];arr.remove(3);
对,这样数组就变成了[1,2,4,5]
很简单也很实用