今天在写代码的过程中,javascript的数组,想要从一个数组中将指定的元素删除,刚开始想的是直接将该元素直接等于null,但是这样在数组中并没有移除元素,也就是说数组长度没有改变,后来就想到了以下方法:
- /*
- * 方法:Array.remove(dx)
- * 功能:根据元素值删除数组元素.
- * 参数:元素值
- * 返回:在原数组上修改数组
- */
- Array.prototype.indexOf = function (val) {
- for (var i = 0; i < this.length; i++) {
- if (this[i] == val) {
- return i;
- }
- }
- return -1;
- };
- Array.prototype.removevalue = function (val) {
- var index = this.indexOf(val);
- if (index > -1) {
- this.splice(index, 1);
- }
- };
- /*
- * 方法:Array.remove(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;
- };
方法二:
- function remove(index){
- return arr.slice(0,index).concat(arr.slice(index+1,arr.length))
- }
其中第二种方法的效率要高于第一种方法。