`

JavaScript Array Remove 最好的删除数组元素的方法

 
阅读更多

原文地址: 
    http://ejohn.org/blog/javascript-array-remove/ 

    作者详细的讲解了为什么要这样写,以及这些写的好处,和其它的删除方法相比它的优势是什么。所以感兴趣的读者可以仔细的看下原文。 

    该方法不同于网上常见的删除方法(国内搜索的结果太令人......),用原作者的话讲,该方法更加的简洁,优雅,快速,高效。 

    网上常见的方法如下: 
Javascript代码  收藏代码
  1. array = array.slice(0,i).concat( array.slice(i+1) );  

    由于上述方法开销大(两次 slice),而且效率不是十分高(concat 的速度还不够快) 
所以原作者才提出了如下方法: 
Javascript代码  收藏代码
  1. Array.prototype.remove = function(from, to) {  
  2.   var rest = this.slice((to || from) + 1 || this.length);  
  3.   this.length = from < 0 ? this.length + from : from;  
  4.   return this.push.apply(this, rest);  
  5. };  

    使用方法如下: 
Javascript代码  收藏代码
  1. // Remove the second item from the array  
  2. array.remove(1);  
  3. // Remove the second-to-last item from the array  
  4. array.remove(-2);  
  5. // Remove the second and third items from the array  
  6. array.remove(1,2);  
  7. // Remove the last and second-to-last items from the array  
  8. array.remove(-2,-1);  

    如果不想扩展 Array 的 prototype 的话,也可以向下面这样写成普通函数: 
Javascript代码  收藏代码
  1. Array.remove = function(array, from, to) {  
  2.   var rest = array.slice((to || from) + 1 || array.length);  
  3.   array.length = from < 0 ? array.length + from : from;  
  4.   return array.push.apply(array, rest);  
  5. };  

分享到:
评论

相关推荐

    Unity3D教程:Array数组类的使用(二)1

    本教程主要关注Array数组类在JavaScript中的使用。 Array 类是Unity3D中JavaScript的特定实现,它提供了丰富的函数和属性来操作数组。数组的长度可以通过 `length` 属性获取或设置,例如: ```javascript var arr ...

    javascript Array.remove() 数组删除

    在标题和描述中提到的`Array.remove()`方法实际上是一个自定义扩展,用于实现从数组中删除指定元素的功能。 下面详细解释这个自定义`Array.prototype.remove()`方法的工作原理: ```javascript Array.prototype....

    Javascript remove 自定义数组删除方法

    Javascript自定义数组删除方法remove()&lt;/title&gt; [removed] Array.prototype.remove=function(dx){ if(isNaN(dx)||dx&gt;this.length){return false;} for(var i=0,n=0;i&lt;this.length;i++){ if(this[i]!=this...

    javascript 删除数组元素和清空数组的简单方法

    在旧版的IE(如IE5及更低版本)中,`Array`对象没有内置的删除元素方法。在IE5.5及以上版本,`splice()`方法可以用来删除元素,但不会真正减少数组长度。为了解决这个问题,可以自定义`remove`或`baoremove`等方法...

    删除数组中的某个元素 JS删除数组中的某个元素

    在这种情况下,我们需要使用JavaScript提供的方法来删除数组中的某个元素。 删除数组中的某个元素可以使用多种方法,例如使用indexOf()方法、splice()方法、filter()方法等。在这篇文章中,我们将会详细介绍使用...

    JavaScript 数组 增加 和 删除

    下面介绍一个自定义的数组删除方法 `remove`: ```javascript Array.prototype.remove = function (from, to) { var rest = this.slice((to || from) + 1 || this.length); this.length = from ; return this....

    js从数组中删除指定值(不是指定位置)的元素实现代码

    基于这个基础,我们可以定义一个`Array.prototype.remove`方法来删除数组中的指定值。这个方法同样接受一个参数,表示需要删除的值。它首先调用`indexOf`方法来获取这个值在数组中的索引位置。如果该值存在(即`...

    JavaScript移除数组元素减少长度的方法

    在JavaScript中,数组是一种常用的数据结构,用于存储一系列的元素。在处理数组时,有时我们需要移除特定位置的元素,并相应地减少数组的长度。在提供的代码中,展示了一个名为`remove`的自定义函数,它实现了这个...

    Javascript根据指定下标或对象删除数组元素

    总结来说,JavaScript提供了多种删除数组元素的方法,包括`splice()`、自定义原型方法以及`filter()`。选择哪种方法取决于具体的需求和场景,例如对性能的要求、是否需要保留原数组等。在实际开发中,理解这些方法的...

    java 删除数组元素与删除重复数组元素的代码

    对于删除重复的元素,一种方法是先对数组进行排序,使得相同的元素相邻,然后遍历数组,只保留不重复的元素。例如: ```javascript var source = ["林冲", "鲁智深", "戴宗", "林冲", "时迁", "朱贵"]; var target ...

    js删除数组元素、清空数组的简单方法(必看)

    本文将详细介绍JavaScript中删除数组元素和清空数组的各种方法。 1. **清空数组** 清空数组最简单的方法是使用`splice()`函数。例如: ```javascript var ary = [1,2,3,4]; ary.splice(0,ary.length); ``` ...

    基于JavaScript实现移除(删除)数组中指定元素

    总结以上,文件内容提供了两种删除数组元素的方法:一种是通过自定义函数`remove`,它适用于操作原始数组;另一种是结合`jQuery.inArray()`和`splice()`的方法,适用于已经在使用jQuery的项目。两种方法各有优劣,...

    Javascript删除数组里的某个元素

    `splice()`是JavaScript数组的一个内置方法,它允许我们在数组中添加或删除元素。对于删除操作,`splice(index, count)`接受两个参数:`index`是元素的索引位置,`count`是要删除的元素数量。例如: ```javascript...

    JS删除数组元素的函数介绍

    - **`Array.remove(dx)`**:这个自定义方法通过遍历数组并重新分配元素,从而删除指定下标的元素。它检查给定的下标是否有效,然后从0开始遍历,遇到不是要删除的元素就将其移动到当前索引,最后减少数组的长度。...

    Javscript删除数组中指定元素并返回新数组

    总结来说,删除数组中指定元素并返回新数组的方法主要包括自定义方法(如示例代码所示)、`filter()`和`splice()`。其中,自定义方法和`filter()`在不改变原数组的前提下实现了需求,而`splice()`则会直接影响原数组...

Global site tag (gtag.js) - Google Analytics