es6新数组功能

数组创建

  • Array.of()
    在以new方法定义数组时会遇到这样的情况
     let arr = new Array(2); // 如果本意是在arr数组里添加一个2元素这个就不能实现,而是定义的一个长度为2的数组容器
     let arr1 = Array.of(2); //我们这样来解决该方法可以实现单参数创建
    
  • Array.from()
    返回一个以arguments对象(类数组)组成的数组,对象就可以使用数组方法不需要还在类数组原型上写Array方法,他的第二个参数可以用方法映射改变数组
    let arr = Array.of(1, 2, 3, 4);
    function add() {
        console.log(Array.from(arguments, function(vaule){
            return ++vaule;
        }));  // 返回数组加一,也可以使用箭头函数简化
    }
    add(...arr);
    
    当映射函数需要使用对象方法时,第三个参数就要写上对象
    let arr = Array.of(1, 2, 3, 4);
    let person = {
        age: 18,
        increase(vaule) {
            return this.age + vaule;
        },
    }
    function grow(){
        return Array.from(arguments, person.increase, person)
    }
    console.log(grow(...arr));  //返回一个映射的与age相加了的数组
    

所有数组的新方法

  • find(),findIndex()
    按参数回调函数条件来返回值,直接看案例
          let arr1 = Array.of(11, 22, 33, 44, 55);
          for(let i of arr1) {
              console.log(arr1.find(n => n>10)); // 相当于每一次都是从数组头开始索引
          }
          console.log(arr1.findIndex(n => n>10) + 1);
          console.log(arr1.find(n => n>10));
          console.log(arr1.find(function (n){
             return n>22;
          }));
    
  • fill()
    以一个参数替换数组中一个或多个元素,该方法是对数组本身改变
    let arr = Array.of(5, 6, 7, 8);
    arr.fill(1);  // arr => 1,1,1,1 当参数只有替换数时将替换数组所有元素
    arr.fill(2, 2);  // arr => 1,1,2,2  
    arr.fill(3, 2, 3); // arr => 1,1,3,2  
    // 后两个参数代表替换位置索引(取头不取尾),只有一个即为索引起始位到数组末尾
    
  • set()
    复制数组,第一个参数为要添加进去的数组,第二个参数为插入索引位(不写默认为0)
     let arr = Array.of(1, 2);
     arr.set([3, 4]);
     console.log(arr); // [3, 4]
     arr.set([1, 2], 2) 
     console.log(arr); // [3, 4, 1, 2]
    
  • subarray()
    切割数组,含头不含尾,只有起始到末尾

类型化数组

  • 相当于是一个长度不可变的数组,类似于一个限制性的数组,定义了元素类型,不符合要求的数据操作,代码都无法被识别。
    在这里插入图片描述
    这样构造:
     let ints = new Int16Array([25, 50]);
     console.log(ints.length); // 2
     console.log(ints[0]); // 25
     console.log(ints[1]); // 50
     ints[2] = 5;
     console.log(ints.length); // 2
     console.log(ints[2]);  // 数组相当于定长,以及规定数组内元素类型  
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值