数组

作者: SunnyGirl_e661 | 来源:发表于2023-05-23 09:48 被阅读0次
    一. 数组的创建
    1.构造函数方式
    //new关键字可省略
    //仅传一个number类型的参数则创建指定长度的数组 
    var array = new Array();//创建空数组
    var array = new Array(10);//创建长度为10的空数组
    var array = new Array('a');//创建长度为1的数组
    var array = new Array(10, 'a');//创建长度为2的数组
    
    2. 字面量方式
    var array = [10, 'a'];//直接给数组赋值
    
    3. Array.of()方法(ES6新增):将一组值转换为数组
    var array = Array.of(1);           //[1]
    var array = Array.of(1, 2, 3);    //[1, 2, 3]
    var array = Array.of(undefined);  //[undefined]
    
    //兼容旧环境:原生不支持时,在其他代码之前执行以下代码会创建Array.of()
    if(!Array.of) {
       Array.of = function() {
         return Array.prototype.slice.call(arguments);
       };
    }
    
    二. 数组的检测
    1.利用对象的toString方法
    Object.prototype.toString.call([]) === "[object Array]";//true
    
    2.Array.isArray([]);//true
    
    三. 数组的属性(length属性)
    1. 设置或返回数组的长度
    2. 增加或删除数组项
    四. 数组的方法
    1. 原型上的方法
     ------ push():
        作用: 向数组末尾添加项或多项
        参数: element1, element2, ......
        返回值: 添加元素后数组的长度
        原数组是否改变: 是
        eg:
            var array = [1];
            var temp = array.push(2);//2
     ------ pop():
        作用: 删除元素最后一项
        参数: 无
        返回值: 删除项
        原数组是否改变: 是
    ------ unshift():
       作用: 向数组开头添加项或多项
       参数: element1, element2, ......
       返回值: 添加元素后数组的长度
       原数组是否改变: 是
    ------ shift():
       作用: 删除数组第一项
       参数: 无
       返回值:删除项
       原数组是否改变: 是
    ------ splice():
       作用: 删除, 插入, 替换数组项
       参数: startndex, deleteCount, item1, ......
       返回值: 删除项组成的数组
       原数组是否改变: 是
            eg:
                 var array = [1, 2, 3];
                 array.splice(1, 0, 'a');//插入
                 array.splice(1, 2);//删除
                 array.splice(1, 1, 'a');//替换
                 array.splice(0);//仅传一个参数:从0到最后
    
    五. 数组的循环
    1. 遍历数组
        - forEach //js中方法,缺陷是循环不能中断
              eg:  
                 //无返回值(通过索引修改原数组或者定义变量)
                ([1, 2]).forEach(function(item, index, array) {});
        - $.each() //Jquery中方法
              eg:
                $.each(array, function(index, item){});
        - map
           eg: 同forEach用法,但return返回item是原数组克隆项,且可对item进行操作
        - for循环: 通用遍历
            eg: 
              for(var i =0 ; i < array.length; i++){};
              for(var i = 0, len = array.length; i< len;i++){};
            
    2. 迭代数组(构建最终返回值- 如求和)
        - reduce
            eg: 
              //prve首项也是最终返回值
              //cur从第二项开始的迭代
              //index索引
              //array原数组
              //cuontprve初始值(可不设置)也是返回值的类型
              ([1,2]).reduce(function(prve, cur, index, array){}, cuontprve);
              ([1,2]).reduce(function(prve, cur, index, array){return prve+cur;}, 0);//求和
       
     - reduceRight: 同上,但从最后一项开始
    
     - every:全true则true,返回布尔值
        eg:
          ([1,2]).every(function(item, index, array){
            return item > 2;
          });
     - some: 一true则true,用法同上
     - filter: 返回true项组成的数组
    
    

    相关文章

      网友评论

          本文标题:数组

          本文链接:https://www.haomeiwen.com/subject/anjurktx.html