• JavaScript数组


    1. 数组对象是用来在单独的变量名中存储一系列的值

      var a = [2,6,1];
      var b = a;
      var c = a.sort();
      // b = ? 
    
     //实现数组的复制  ====>  var b = [].concat(a)
    

    2. 删除数组中的重复对象

    var a = [
    
      { name: 1, age: 12 },
      { obj: 2, age: 1, name: 1 },
      { name: 2, age: 2 }
    ]
    
    Array.prototype.remove = function (val) {
      var index = this.indexOf(val);
      if (index > -1) {
        this.splice(index, 1);  //params1 代表下标,params2 代表要删除几个元素 
      }
    };
    
    var uniqueObj = function (obj) {
      for (var i = 0; i < obj.length; i++) {
        var count = 0;
        for (var j = 0; j < obj.length; j++) {
          if (obj[i].name == obj[j].name) {
            count++;
          }
          if (obj[i].name == obj[j].name) {
            if (count > 1) {
              obj.remove(obj[i]);
            }
          }
        }
      }
      return obj;
    }
    
    console.log(uniqueObj(a))
    

    3. 删除数组中的重复元素

    
    var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
    function unique(arr){
    // 遍历arr,把元素分别放入tmp数组(不存在才放)
    var tmp = new Array();
    for(var i in arr){
    //该元素在tmp内部不存在才允许追加
    if(tmp.indexOf(arr[i])==-1){
    tmp.push(arr[i]);
    }
    }
    return tmp;
    }
    
    //使用Set, es6新增的一种数据结构,它和数组非常相似,但是成员的值都是唯一的,没有重复的值,
    //但是不能删除重复对象,因为Set判断元素是否重复的办法类似于===运算符,两个对象总是不相等的
    
    const arr = [1, 1, 2, 2, 3, 4, 5, 5]
    
    const newArr = [...new Set(arr)]
    
    console.log(newArr)  
    // [1, 2, 3, 4, 5]    分析:对于一个一维数组,我们可以先把它转化成Set,再配合...解构运算符重新转化为数组
    
    //1.add(value):添加某个值,返回Set结构本身。
    //2.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
    //3. has(value):返回一个布尔值,表示该值是否为Set的成员。
    //4 .clear():清除所有成员,没有返回值。
    
    //删除数组中的元素
    
    Array.prototype.remove = function (v) {
        var set = new Set(this)
        set.delete(v)
        return [...set]
    }
    
    var arr = [1, 2, 3]
    
    arr.remove(2)
    
    // [1, 3]
    
    

    4. 数组常见操作

    
         var arr = [1, 2, 3, 4, 5];
    
         //删除并返回数组中第一个元素
    
         var theFirst = arr.shift();
             alert(theFirst);//返回1 number
             alert(arr);//2,3,4,5 object
    
         //删除并返回数组中最后一个元素
    
        var theLast = arr.pop();
            alert(theLast);//返回5 number
            alert(arr);//2,3,4 object
    
        //在数组开始增加一个或多个元素,并返回数组长度
    
        var theNewArrStart = arr.unshift(-1, 0);
            alert(theNewArrStart);//返回5 number
            alert(arr);//-1,0,2,3,4 object
    
        //在数组结尾增加一个或多个元素,并返回数组长度
    
        var theNewArrEnd = arr.push(5, 6);
            alert(theNewArrEnd);//返回7 number
            alert(arr);//-1,0,2,3,4,5,6 object
    
        //从第i(数组索引)个位置删除n个元素
    
        arr.splice(1, 2);
            alert(arr);//-1,3,4,5,6 object
    
        //从第i(数组索引)个位置删除n个元素,并插入s个新元素
    
        arr.splice(1, 2, 10, 11, 12);
            alert(arr);//-1,10,11,12,5,6 object
    
        //合并2个或多个数组(concat中的参数可以为单个的值,也可以为数组,并且可以有多个值或数组)
    
        var arr1 = [7, 8];
        var arrCon = arr.concat(arr1);
            alert(arrCon);//-1,10,11,12,5,6,7,8 object
    
        //将数组中的元素使用特定的字符分隔,并返回字符串(如果不设置特定分割字符,则默认为逗号)
    
        var theSep = arrCon.join('-');
            alert(theSep);//-1-10-11-12-5-6-7-8 string
    
        //点到数组中元素的顺序
    
        var theRev = arrCon.reverse();
            alert(theRev);//8,7,6,5,12,11,10,-1
    
  • 相关阅读:
    单例模式-静态内部类方式
    单例模式-懒汉式(双重检验)
    单例模式-懒汉式
    sonarqube7.2版本web api简析
    sonarqube集成maven插件,上传扫描结果
    sonarQube快速入门7.2版本下载pmd插件,并设置只使用pmd规则
    gradle使用dokka插件出现Exception while loading package-list from ExternalDocumentationLinkImp
    让linux后解压的资源权限就是777(工作笔记)
    java并发 无锁cas的最简单理解
    java 必须要懂点的包 今日研究小结
  • 原文地址:https://www.cnblogs.com/Lewiskycc/p/6961645.html
Copyright © 2020-2023  润新知