`
yhz61010
  • 浏览: 550472 次
  • 来自: -
博客专栏
63c13ecc-ef01-31cf-984e-de461c7dfde8
libgdx 游戏开发
浏览量:11944
社区版块
存档分类
最新评论

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

阅读更多
    过来看看大仙们是如何删除数组中的元素的:

    原文地址:
    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);
};
分享到:
评论

相关推荐

    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 Array.remove() 数组删除

    代码如下:Array.prototype.remove = function(b) { var a = this.indexOf(b); if (a &gt;= 0) { this.splice(a, 1); return true; } return false; }; 以后使用过程中,就可以直接利用这个函数,删除数组中的值了。

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

    将一下代码放在全局js文件中: Js代码 代码如下: /** *删除数组指定下标或指定对象 */ Array.prototype.remove=function(obj){ for(var i =0;i &lt;this.length;i++){ var temp = this[i]; if(!isNaN(obj)){ temp=i;...

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

    代码如下: //数组移除长度方法 var array=[]; array[0]=”张三”; array[1]=”李四”; array[2]=”王五”; array[3]=”赵六”; array[4]=”百度”; function remove(array,index){ if(index&lt;=(array.length-1)){ ...

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

    在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全新的思路。 代码实例如下: var ...

    JavaScript使用pop方法移除数组最后一个元素用法实例

    本文实例讲述了JavaScript使用pop方法移除数组最后一个元素的用法。分享给大家供大家参考。具体如下: 下面的代码演示了JS数组的pop方法,可以用来移除数组的最后一个元素,实际上就是把数组当成堆栈使用 &lt;!...

    JavaScript常见的五种数组去重的方式

    大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 ...Array.prototype.removeDuplicate = function(){ var n = []; for(var i=0;i&lt;this.length;i++){ if(n.indexOf

    array-removeat:从特定位置删除项目

    array-removeAt 从特定位置删除项目。 安装 $ npm install --save array-removeat 用法 var removeAt = require ( 'array-removeat' ) ; removeAt ( [ 1 , 2 , 3 ] , 1 ) ; // =&gt; [1, 3] 原料药 removeAt(array...

    javascript(map功能)

    * remove(key) 删除指定KEY的元素,成功返回True,失败返回False * get(key) 获取指定KEY的元素值VALUE,失败返回NULL * element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE)...

    JavaScript使用shift方法移除素组第一个元素实例分析

    本文实例讲述了JavaScript使用shift方法移除素组第一个元素的用法。分享给大家供大家参考。具体如下: JS中我们可以通过pop方法移除数组的最后一个元素,可以通过shift方法移除数组的第一个元素 &lt;!DOCTYPE html&gt;...

    javascript 数组精简技巧小结

    有时在创建代码时需要替换数组中的特定值,有一种很好的简短方法可以做到这一点,咱们可以使用.splice(start、value to remove、valueToAdd),这些参数指定咱们希望从哪里开始修改、修改多少个值和替换新值。...

    javascript数字数组去重复项的实现代码

    test.htm 代码如下:&lt;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ... &lt;head&gt; &lt;... charset=gb2312″ /&gt; &lt;...array-remove-repeate&lt;/title&gt; &lt;style

    JavaScript笔记

    |--1.join()方法--用于把数组中的所有元素放入一个字符串 | eparato表示要使用的分隔符。如果省略该参数,则使用逗号作为分隔符 |--2.toString()方法--可把数组转换为字符串,并返回结果 |--3.concat()方法--...

    颜色分类leetcode-leetcode-[removed]我对Leetcode问题的解决方案

    颜色分类leetcode My Leetcode Problems Solutions Using javascript(ES6) 1 Two Sum ...罗马数字转整数 ...Remove ...Array 删除排序数组中的重复项 ...Array 搜索旋转排序数组 ...在排序数组中查找元素的第一个和最后一个位

    javascript语言参考+教程 CHM

    concat 方法 (Array); concat 方法 (String); cos 方法; decodeURI 方法; decodeURIComponent 方法; dimensions 方法; encodeURI 方法; encodeURIComponent 方法; escape 方法; eval 方法; exec 方法; ...

    array-sync:Node.js的数据同步模块

    它将接受一个源数组,该源数组的更新版本,并提供一个对象,该对象包含键remove , unchanged , changed和create 。 可以使用array-sync简化由批量阵列操作导致的CRUD操作。 例如,如果您为用户提供了客户端列表,...

    jsvm2框架源码

    JSVM (JavaScript Virtual Machine的缩写),一个JavaScript基础框架,sourceforge开源项目,由万常华(wch3116)于2003年底发起, 采用的是 BSD License 授权协议。 JSVM并不是一个JavaScript Library,而是一个更...

    array-organizer:该库将用于处理数组类型的数据

    remove } from 'array-organizer' ; toArray ( new Set ( [ 1 , 2 , 3 , { } , new Map ( ) ] ) ) ; // [ 1, 2, 3, {}, Map {} ] insert ( [ 1 , 2 , 3 , 4 ] , 1 , 22 ) ; // [1, 22, 2, 3, 4] // Will be ...

    Javascript技巧之不要用for in语句对数组进行遍历

    一,为什么不要用for in语句 jqModal这个jquery插件估计很多人都使用过,在jqModal... 第二个for in遍历,根据上下文确认this[i]是一个数组对象(Array)。 很多JS先驱者都告诫过我们不要对数组对象使用for in语句进行

Global site tag (gtag.js) - Google Analytics