• 数组删除元素


    一、length

    JavaScript中Array的length属性非常有特点一一它不是只读的。因此,通过设置这个属性可以从数组的末尾移除项或添加新项

    1 var colors = ["red", "blue", "grey"];   //创建一个包含3个字符串的数组
    2 colors.length = 2;
    3 console.log(colors[2]);  //undefined

    二、delete关键字

    1 var arr = [1, 2, 3, 4];
    2 delete arr[0];
    3 
    4 console.log(arr);   //[undefined, 2, 3, 4]

    可以看出来,delete删除之后数组长度不变,只是被删除元素被置为undefined了。

    三、pop

    1 var colors = ["red", "blue", "grey"];
    2 var item = colors.pop();
    3 console.log(item);      //"grey"
    4 console.log(colors.length);    //2

    可以看出,在调用Pop方法时,数组返回最后一项,即”grey”,数组的元素也仅剩两项。

    四、shift方法,它能够移除数组中的第一个项并返回该项,并且数组的长度减1。

    1 var colors = ["red", "blue", "grey"];
    2 var item = colors.shift();
    3 console.log(item);      //"red"
    4 console.log(colors.length);    //2

    五、splice操作方法 

    在删除数组元素的时候,它可以删除任意数量的项,只需要指定2个参数:要删除的第一项的位置和要删除的项数,例如splice(0, 2)会删除数组中的前两项。

    1 var colors = ["red", "blue", "grey"];
    2 var item = colors.splice(0, 1);
    3 console.log(item);      //"red"
    4 console.log(colors);    //["blue", "grey"]

    六、filter方法:

    找出元素不是”red”的项数返回给colors(其实是得到了一个新的数组),从而达到删除的作用。

    1 var colors = ["red", "blue", "grey"];
    2 
    3 colors = colors.filter(function(item) {
    4     return item != "red"
    5 });
    6 
    7 console.log(colors);    //["blue", "grey"]

    七、ForEach循环来对比元素找到之后将其删除:

    1  var colors = ["red", "blue", "grey"];
    2 
    3 colors.forEach(function(item, index, arr) {
    4     if(item == "red") {
    5        arr.splice(index, 1);
    6     }
    7 });

    所谓的迭代方法就是用循环迭代数组元素发现符合要删除的项则删除,用的最多的地方可能是数组中的元素为对象的时候,根据对象的属性例如ID等等来删除数组元素

    八、在原型上添加方法删除:

     1 Array.prototype.remove = function(dx) {
     2 
     3     if(isNaN(dx) || dx > this.length){
     4         return false;
     5     }
     6 
     7     for(var i = 0,n = 0;i < this.length; i++) {
     8         if(this[i] != this[dx]) {
     9             this[n++] = this[i];
    10         }
    11     }
    12     this.length -= 1;
    13 };
    14 
    15 var colors = ["red", "blue", "grey"];
    16 colors.remove(1);
      console.log(colors); //["red", "grey"]
  • 相关阅读:
    ArcGIS Engine获取单条要素的标注(LABEL)内容
    推荐一个winform第三方控件QIOS DevSuite
    解决C#,CAD二次开发实例化AcadApplicationClass失败
    skyline中屏蔽或自定义InformationWindow和NavigationMap的右键菜单
    (转)Skyline TEPro6.0版本在二次开发方面的改进总结
    skyline TEP 6 开发帮助文档CHM中文汉化版
    CCIE一年后的心语(转)
    PC 到 PC的共享
    Mysql 更改某一字段的内容为另一字段加上字符串
    Ralis: 连接数据库并查询
  • 原文地址:https://www.cnblogs.com/ll15888/p/11555052.html
Copyright © 2020-2023  润新知