过来看看大仙们是如何删除数组中的元素的:
原文地址:
http://ejohn.org/blog/javascript-array-remove/
作者详细的讲解了为什么要这样写,以及这些写的好处,和其它的删除方法相比它的优势是什么。所以感兴趣的读者可以仔细的看下原文。
该方法不同于网上常见的删除方法(国内搜索的结果太令人......),用原作者的话讲,该方法更加的简洁,优雅,快速,高效。
网上常见的方法如下:
array = array.slice(0,i).concat( array.slice(i+1) );
由于上述方法开销大(两次 slice),而且效率不是十分高(concat 的速度还不够快)
所以原作者才提出了如下方法:
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
使用方法如下:
// Remove the second item from the array
array.remove(1);
// Remove the second-to-last item from the array
array.remove(-2);
// Remove the second and third items from the array
array.remove(1,2);
// Remove the last and second-to-last items from the array
array.remove(-2,-1);
如果不想扩展 Array 的 prototype 的话,也可以向下面这样写成普通函数:
Array.remove = function(array, from, to) {
var rest = array.slice((to || from) + 1 || array.length);
array.length = from < 0 ? array.length + from : from;
return array.push.apply(array, rest);
};
分享到:
相关推荐
本教程主要关注Array数组类在JavaScript中的使用。 Array 类是Unity3D中JavaScript的特定实现,它提供了丰富的函数和属性来操作数组。数组的长度可以通过 `length` 属性获取或设置,例如: ```javascript var arr ...
在标题和描述中提到的`Array.remove()`方法实际上是一个自定义扩展,用于实现从数组中删除指定元素的功能。 下面详细解释这个自定义`Array.prototype.remove()`方法的工作原理: ```javascript Array.prototype....
Javascript自定义数组删除方法remove()</title> [removed] 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...
在这种情况下,我们需要使用JavaScript提供的方法来删除数组中的某个元素。 删除数组中的某个元素可以使用多种方法,例如使用indexOf()方法、splice()方法、filter()方法等。在这篇文章中,我们将会详细介绍使用...
在旧版的IE(如IE5及更低版本)中,`Array`对象没有内置的删除元素方法。在IE5.5及以上版本,`splice()`方法可以用来删除元素,但不会真正减少数组长度。为了解决这个问题,可以自定义`remove`或`baoremove`等方法...
下面介绍一个自定义的数组删除方法 `remove`: ```javascript Array.prototype.remove = function (from, to) { var rest = this.slice((to || from) + 1 || this.length); this.length = from ; return this....
基于这个基础,我们可以定义一个`Array.prototype.remove`方法来删除数组中的指定值。这个方法同样接受一个参数,表示需要删除的值。它首先调用`indexOf`方法来获取这个值在数组中的索引位置。如果该值存在(即`...
在JavaScript中,数组是一种常用的数据结构,用于存储一系列的元素。在处理数组时,有时我们需要移除特定位置的元素,并相应地减少数组的长度。在提供的代码中,展示了一个名为`remove`的自定义函数,它实现了这个...
总结来说,JavaScript提供了多种删除数组元素的方法,包括`splice()`、自定义原型方法以及`filter()`。选择哪种方法取决于具体的需求和场景,例如对性能的要求、是否需要保留原数组等。在实际开发中,理解这些方法的...
对于删除重复的元素,一种方法是先对数组进行排序,使得相同的元素相邻,然后遍历数组,只保留不重复的元素。例如: ```javascript var source = ["林冲", "鲁智深", "戴宗", "林冲", "时迁", "朱贵"]; var target ...
本文将详细介绍JavaScript中删除数组元素和清空数组的各种方法。 1. **清空数组** 清空数组最简单的方法是使用`splice()`函数。例如: ```javascript var ary = [1,2,3,4]; ary.splice(0,ary.length); ``` ...
总结以上,文件内容提供了两种删除数组元素的方法:一种是通过自定义函数`remove`,它适用于操作原始数组;另一种是结合`jQuery.inArray()`和`splice()`的方法,适用于已经在使用jQuery的项目。两种方法各有优劣,...
`splice()`是JavaScript数组的一个内置方法,它允许我们在数组中添加或删除元素。对于删除操作,`splice(index, count)`接受两个参数:`index`是元素的索引位置,`count`是要删除的元素数量。例如: ```javascript...
- **`Array.remove(dx)`**:这个自定义方法通过遍历数组并重新分配元素,从而删除指定下标的元素。它检查给定的下标是否有效,然后从0开始遍历,遇到不是要删除的元素就将其移动到当前索引,最后减少数组的长度。...
总结来说,删除数组中指定元素并返回新数组的方法主要包括自定义方法(如示例代码所示)、`filter()`和`splice()`。其中,自定义方法和`filter()`在不改变原数组的前提下实现了需求,而`splice()`则会直接影响原数组...