`
xuedong
  • 浏览: 298809 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS删除数组元素

阅读更多

、JS删除数组元素

view plaincopy to clipboardprint?
1.delete方法:delete arr[1]  
这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用  
for(index in arr)  
document.write(’arr[’+index+’]=’+arr[index]);  
这种遍历方式跳过其中undefined的元素  
 
* 该方式IE4.o以后都支持了  
 
2.数组对象splice方法:arr.splice(1,1);  
这种方式数组长度相应改变,但是原来的数组索引也相应改变  
splice参数中第一个1,是删除的起始索引(从0算起),在此是数组第二个元素  
第二个1,是删除元素的个数,在此只删除一个元素,即’b';  
此时遍历数组元素可以用普通遍历数组的方式,比如for,因为删除的元素在  
数组中并不保留  
 
* 该方法IE5.5以后才支持  
 
值得一提的是splice方法在删除数组元素的同时,还可以新增入数组元素  
比如arr.splice(1,1,’d',’e'),d,e两个元素就被加入数组arr了  
结果数组变成arr:’a',’d',’e',’c’本文出自 51CTO.COM技术博客 
1.delete方法:delete arr[1]
这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用
for(index in arr)
document.write(’arr[’+index+’]=’+arr[index]);
这种遍历方式跳过其中undefined的元素

* 该方式IE4.o以后都支持了

2.数组对象splice方法:arr.splice(1,1);
这种方式数组长度相应改变,但是原来的数组索引也相应改变
splice参数中第一个1,是删除的起始索引(从0算起),在此是数组第二个元素
第二个1,是删除元素的个数,在此只删除一个元素,即’b';
此时遍历数组元素可以用普通遍历数组的方式,比如for,因为删除的元素在
数组中并不保留

* 该方法IE5.5以后才支持

值得一提的是splice方法在删除数组元素的同时,还可以新增入数组元素
比如arr.splice(1,1,’d',’e'),d,e两个元素就被加入数组arr了
结果数组变成arr:’a',’d',’e',’c’本文出自 51CTO.COM技术博客

二、删除重复元素

view plaincopy to clipboardprint?
Array.prototype.del = function(n) {   
        if (n<0) {  
          return this;   
        }  
        return this.slice(0,n).concat(this.slice(n+1,this.length));   
      }  
    Array.prototype.removeRepeat=function() {   
        this.sort();   
        var rs = [];   
        var cr = false;   
        for (var i=0; i<this.length; i++)   
        {   
          if (!cr) cr = this[i];   
          else if (cr==this[i]) rs[rs.length] = i;   
          else cr = this[i];   
        }   
        var re = this;   
        for (var i=rs.length-1; i>=0; i--) re = re.del(rs[i]);   
        return re;   
      }  
 
/////////////////////////////////////////////  
Array.prototype.unique=function()  
{  
var a={};  
for(var i=0;i<this.length;i++)  
{  
if(typeof a[this[i]]=="undefined")  
a[this[i]]=1;  
}  
this.length=0;  
for(var i in a)  
this[this.length]=i;  
return this;  
}  
 
   var    a    =    [1,2,4,12,5,3,5,4,8,5,2,8,8,1,5];     
   alert(a    +"\n"+    a.unique());  
Array.prototype.del = function(n) {
        if (n<0) {
          return this;
        }
        return this.slice(0,n).concat(this.slice(n+1,this.length));
      }
    Array.prototype.removeRepeat=function() {
        this.sort();
        var rs = [];
        var cr = false;
        for (var i=0; i<this.length; i++)
        {
          if (!cr) cr = this[i];
          else if (cr==this[i]) rs[rs.length] = i;
          else cr = this[i];
        }
        var re = this;
        for (var i=rs.length-1; i>=0; i--) re = re.del(rs[i]);
        return re;
      }

/////////////////////////////////////////////
Array.prototype.unique=function()
{
var a={};
for(var i=0;i<this.length;i++)
{
if(typeof a[this[i]]=="undefined")
a[this[i]]=1;
}
this.length=0;
for(var i in a)
this[this.length]=i;
return this;
}

   var    a    =    [1,2,4,12,5,3,5,4,8,5,2,8,8,1,5];  
   alert(a    +"\n"+    a.unique());
 

三、其他

new Array()
new Array(len)
new Array([item0,[item1,[item2,...]]]
使用数组对象的方法:
var objArray=new Array();
objArray.concact([item1[,item2[,....]]]-------------------将参数列表连接到objArray的后面形成一个新的数组并返回,原有数组不受影响。如:var arr=["a","b","c"];
arr.concact("d","e");
将返回包括从"a"到"e"字母元素的数组。而arr本身不受影响。
objArray.join(separator)-----------------以separator指定的字符作为分割符,将数组转换为字符串,当seperator 为逗号时,其作用和toString()相同。
objArray.pop()---------通俗的讲,就是弹出数组的最后一个元素。结合下面的push方法,使得将数组作为栈来使用成为可能。pop方法返回数组最后一个元素的值,并将length属性减1,即返回后立即丢失最后一个元素。
objArray.push([value1[,value2[,....]]])-------------将参数添加到数组的结尾。如:[1,2,3, 4].push("a","b")将得到[1,2,3,4,"a","b"]
objArray.reverse()将数组中的元素反转排列。如:[1,2,3].reverse()将得到[3,2,1],这个操作是在原有数组上经行操作,同时也返回数组本身
objArray.shift()-----------移去数组的第一个元素,并返回这个元素的值。这个方法的性质和pop方法很类似,pop方法是移去最后一个元素。
objArray.slice(start,end)----------- 返回数组对象的一个子集,索引从start开始(包括 start),到end结束(不包括end),原有数组不受影响。如:[1,2,3,4,5,6].slice(1,4)将得到[2,3,4]。当 start或者end为负数时,则使用他们加上length后地值。如:[1,2,3,4,5,6].slice(-4,-1)将得到[3,4,5]。如果end小于等于start,将返回空数组。
objArray.sort(comparefn)------- 根据comparefn定义的大小比较函数,对一个数组进行排序。函数comparefn必须接受两个参数element1,element2,如果需要需要element1排在element2之前,应该返回一个负数;如果需要element1排在element2之后,应该返回一个正数,如果两个数平等对待(即保持原有顺序)则返回0。当省略comparefn时,则元素按照字典顺序排列。如:对定义的比较函数cmp: function cmp(e1,e2){return e1-e2;}则[3,4,2,7].sort(cmp)将得到[2,3,4,7].
objArray.splice(start,deleteCount[,item1,item2[,...]]]) 这是一个复杂的函数,用于完成数组元素的删除 取代和插入操作。其中,start参数表示要进行操作的索引位置,deleteCount指从start开始要删除的元素的元素个数(包括了start位置),如果deleteCount省略,则表示从start开始要删除数组的剩余部分。[,item1[,item2[,...]]]则表示可选的插入到start之前的元素列表。如:
var arr=[0,1,2,3,4,5,6];
arr.splice(1,1);
document.write(arr);//显示“0,2,3,4,5,6”
arr=[0,1,2,3,4,5,6];
arr.splice(0,0,"a","b");
document.write(arr);//显示“a,b,0,1,2,3,4,5,6"
arr=[0,1,2,3,4,5,6];
arr.splice(3,2,"c","d");
document.write(arr);//显示"0,1,2,c,d,5,6"
objArray.unshift(item1[,item2[,...]]])------------------- 将参数列表插入到数组的开头。其性质和push方法类型,但push方法是将元素添加到数组的结尾。如: [1,2,3,4].unshift("a","b")将得到["a","b",1,2,3,4]。
从大到小冒泡排序法:

 

转自:http://blog.csdn.net/staywithc/archive/2009/03/09/3972443.aspx

 

分享到:
评论

相关推荐

    JavaScript如何删除数组元素!

    本篇文章将详细介绍几种在JavaScript中删除数组元素的方法,帮助开发者更好地理解和应用这些技巧。 1. **pop() 方法** `pop()` 方法用于删除并返回数组的最后一个元素。如果数组为空,它将不执行任何操作并返回 `...

    js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素

    js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js数组删除指定元素js...

    js数组相减简单示例【删除a数组所有与b数组相同元素】

    本文详细讲解了如何使用JavaScript进行数组相减的操作,即删除数组a中所有与数组b相同的元素。这涉及到JavaScript中的数组遍历、元素比较以及数组的删除操作等核心知识。通过具体示例,我们学习了如何编写一个函数来...

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

    删除数组中的某个元素JS删除数组中的某个元素 删除数组中的某个元素是JavaScript编程中经常遇到的问题,特别是在数组操作中。这篇文章将会详细介绍...我们可以根据实际情况选择合适的方法来实现数组元素的删除操作。

    JavaScript删除数组元素的方法

    本文实例讲述了JavaScript删除数组元素的方法。分享给大家供大家参考。具体分析如下: JS中可以通过delete删除数组元素,但是删除后数组的大小不会改变 [removed] &lt;!-- var days = ["Sunday","Monday","Tuesday...

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

    在JavaScript中,删除数组中指定值的元素是数组操作中常见的一环。这里我们讨论的不是删除指定索引位置的元素,而是删除数组中所有匹配给定值的元素。这是一个实用的功能,可以让我们更加灵活地处理数组数据。 首先...

    javascript删除数组元素并且数组长度减小的简单实例

    本文将详细讲解如何通过值或索引来删除数组元素并减少数组长度,以及相关的JavaScript数组操作方法。 首先,我们来看如何通过值来删除数组元素。在给定的示例中,定义了一个名为`deleteValue`的方法,该方法添加到`...

    js删除数组中指定元素.rar

    本教程将详细探讨如何在JavaScript中删除数组中的指定元素。 首先,我们有两种主要的方法来实现这个功能:`filter()`方法和`splice()`方法。这两种方法各有特点,适用于不同的场景。 1. **使用`filter()`方法**: ...

    浅析jquery数组删除指定元素的方法:grep()

    过滤函数需要返回一个布尔值,用来指示是否保留该数组元素。如果`grep()`函数的第三个参数`invert`设置为`true`,则过滤函数返回`true`的元素将被删除,返回`false`的元素会被保留。 具体到使用`grep()`方法删除...

    javascript删除数组元素的七个方法示例

    本文将详细介绍七种在JavaScript中删除数组元素的方法。在讲解之前,先要了解数组在JavaScript中的特性,JavaScript的数组非常灵活,不仅仅是固定的数据类型集合,而是可以动态增删改查的。JavaScript数组的灵活性...

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

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

    js删除数组中指定元素,多种方法

    内容概要:介绍js删除数组中指定元素的多种方法,分为四个大类:删除第一个元素;删除最后一个元素;删除数组中某个指定下标的元素;删除数组中某个指定元素。每个大类至少提供了三种删除方法,各有优劣,但都能实现...

    javascript-js删除数组中指定元素

    js删除数组中指定元素 JavaScript 中可以使用 `splice()` 方法来删除数组中的指定元素。 `splice()` 方法接受两个参数:要删除的元素的索引和要删除的元素的个数。如果要删除的元素只有一个,可以将第二个参数设为 ...

    js删除数组中指定元素

    - `index`:要开始修改的数组元素的索引位置。 - `howMany`:要删除的元素数量。如果为0,则不删除任何元素,但可以添加新的元素。 - `item1, ..., itemX`(可选):要在被删除元素的位置插入的新元素。 例如,如果...

    js删除数组中的元素delete和splice的区别详解

    这时我想删除这个数组中的b元素: 方法一:delete 删除数组 delete textArr[1] 结果为: [“a”,undefined,”c”,”d”]  只是被删除的元素变成了 undefined 其他的元素的键值还是不变。 方法二:aplice 删除数组 ...

    不改变长度删除数组中的元素

    3. **过滤操作**:另一种策略是,当访问数组时,使用过滤函数(如JavaScript的`filter()`方法)来创建一个新的只包含未被删除元素的视图。这种方法并不会改变原数组,而是返回一个新的数组,它包含了所有未被标记为...

    js删除数组中指定元素源码

    JavaScript 提供了一个 delete 关键字用来删除(清除)数组元素。要注意的是,使用 delete 删除元素之后数组长度不变,只是被删除元素被置为 empty 了。 示例代码: ``` let index = 3 let arr = [1,2,3,4,5] ...

    js删除数组

    本篇将详细介绍JavaScript中删除数组元素的几种常见方法。 1. `splice()` 方法: `splice()` 是JavaScript中最通用的数组操作方法,它允许添加、删除或替换数组中的元素。对于删除操作,`splice()` 接受两个参数:...

Global site tag (gtag.js) - Google Analytics