过来看看大仙们是如何删除数组中的元素的:
原文地址:
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()</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...
代码如下:Array.prototype.remove = function(b) { var a = this.indexOf(b); if (a >= 0) { this.splice(a, 1); return true; } return false; }; 以后使用过程中,就可以直接利用这个函数,删除数组中的值了。
将一下代码放在全局js文件中: Js代码 代码如下: /** *删除数组指定下标或指定对象 */ Array.prototype.remove=function(obj){ for(var i =0;i <this.length;i++){ var temp = this[i]; if(!isNaN(obj)){ temp=i;...
代码如下: //数组移除长度方法 var array=[]; array[0]=”张三”; array[1]=”李四”; array[2]=”王五”; array[3]=”赵六”; array[4]=”百度”; function remove(array,index){ if(index<=(array.length-1)){ ...
在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全新的思路。 代码实例如下: var ...
本文实例讲述了JavaScript使用pop方法移除数组最后一个元素的用法。分享给大家供大家参考。具体如下: 下面的代码演示了JS数组的pop方法,可以用来移除数组的最后一个元素,实际上就是把数组当成堆栈使用 <!...
大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 ...Array.prototype.removeDuplicate = function(){ var n = []; for(var i=0;i<this.length;i++){ if(n.indexOf
array-removeAt 从特定位置删除项目。 安装 $ npm install --save array-removeat 用法 var removeAt = require ( 'array-removeat' ) ; removeAt ( [ 1 , 2 , 3 ] , 1 ) ; // => [1, 3] 原料药 removeAt(array...
* remove(key) 删除指定KEY的元素,成功返回True,失败返回False * get(key) 获取指定KEY的元素值VALUE,失败返回NULL * element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE)...
本文实例讲述了JavaScript使用shift方法移除素组第一个元素的用法。分享给大家供大家参考。具体如下: JS中我们可以通过pop方法移除数组的最后一个元素,可以通过shift方法移除数组的第一个元素 <!DOCTYPE html>...
有时在创建代码时需要替换数组中的特定值,有一种很好的简短方法可以做到这一点,咱们可以使用.splice(start、value to remove、valueToAdd),这些参数指定咱们希望从哪里开始修改、修改多少个值和替换新值。...
test.htm 代码如下:<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ... <head> <... charset=gb2312″ /> <...array-remove-repeate</title> <style
|--1.join()方法--用于把数组中的所有元素放入一个字符串 | eparato表示要使用的分隔符。如果省略该参数,则使用逗号作为分隔符 |--2.toString()方法--可把数组转换为字符串,并返回结果 |--3.concat()方法--...
颜色分类leetcode My Leetcode Problems Solutions Using javascript(ES6) 1 Two Sum ...罗马数字转整数 ...Remove ...Array 删除排序数组中的重复项 ...Array 搜索旋转排序数组 ...在排序数组中查找元素的第一个和最后一个位
concat 方法 (Array); concat 方法 (String); cos 方法; decodeURI 方法; decodeURIComponent 方法; dimensions 方法; encodeURI 方法; encodeURIComponent 方法; escape 方法; eval 方法; exec 方法; ...
它将接受一个源数组,该源数组的更新版本,并提供一个对象,该对象包含键remove , unchanged , changed和create 。 可以使用array-sync简化由批量阵列操作导致的CRUD操作。 例如,如果您为用户提供了客户端列表,...
JSVM (JavaScript Virtual Machine的缩写),一个JavaScript基础框架,sourceforge开源项目,由万常华(wch3116)于2003年底发起, 采用的是 BSD License 授权协议。 JSVM并不是一个JavaScript Library,而是一个更...
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 ...
一,为什么不要用for in语句 jqModal这个jquery插件估计很多人都使用过,在jqModal... 第二个for in遍历,根据上下文确认this[i]是一个数组对象(Array)。 很多JS先驱者都告诫过我们不要对数组对象使用for in语句进行