zoukankan      html  css  js  c++  java
  • 深入理解ES6读书笔记9:数组扩展

    Array.of()与Array.from()方法

    ES6之前创建数组使用Array构造器与数组字面量写法。
    ES6新增了Array.of()与Array.from()方法。
    Array.of():创建一个包含所有传入参数的数组,不管参数的数量与类型。
    Array.from():将可迭代对象或者类数组对象转换为数组。

    let items1 = new Array(); //创建数组,使用Array构造器
    let items2 = new Array(3); //创建数组,只有一个参数且为整数类型时,参数表示数组长度
    let items3 = new Array("3");//创建数组,只有一个参数且不是整数类型时,参数会成为数组的元素
    let items4 = new Array(3,"3"); //创建数组,大于一个参数时,参数会成为数组的元素
    let items5 = [3, 5]; //创建数组,使用字面量
    let items6 = Array.of(3); //创建数组,使用Array.of,参数会成为数组的元素
    let items7 = Array.of(3, 5);
    
    console.log(items1); //[]
    console.log(items2); //[, , ,]
    console.log(items3); //["3"]
    console.log(items4); //[3,"3"]
    console.log(items5); //[3, 5]
    console.log(items6); //[3]
    console.log(items7); //[3, 5]
    
    function translate() {
        let items = Array.from(arguments);
        console.log(items); //[1,2,3]
    }
    translate(1, 2, 3);
    
    function translate2() {
        return Array.from(arguments, (value) => value + 1);
    }
    let numbers = translate2(1, 2, 3);
    console.log(numbers); //[2,3,4]
    
    let set = new Set([1, 2]);
    let numbers2 = Array.from(set);
    console.log(numbers2); //[1,2]

    find()和findIndex()方法

    两者均接受两个参数:一个回调函数、一个可选值用于指定回调函数内部的 this 。该回调函数可接收三个参数:数组的某个元素、该元素对应的索引位置、以及该数组自身。
    回调函数第一次返回 true 时会停止查找。
    find() 会返回匹配的值,而 findIndex() 返回匹配位置的索引。

    let numbers = [1, 2, 3, 4, 5];
    let r1 = numbers.find(function(value, index, arr){
        return value > 3;
    });
    console.log(r1); // 4
    console.log(numbers.find(n => n > 3)); // 4
    
    let r2 = numbers.findIndex(function(value, index, arr){
        return value > 3;
    });
    console.log(r2); // 3
    console.log(numbers.findIndex(n => n > 3)); // 3

    fill()方法

    使用特定值填充数组中的一个或多个元素。
    当只使用一个参数的时候,该方法会用该参数的值填充整个数组。
    还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置(不包括结束位置的那个元素)。

    let numbers = [1, 2, 3, 4];
    numbers.fill(1, 2);
    console.log(numbers.toString()); // 1,2,1,1
    numbers.fill(0, 1, 3);
    console.log(numbers.toString()); // 1,0,0,1

    copyWithin()方法

    将指定位置的成员复制到其他位置。
    Array.prototype.copyWithin(target, start = 0, end = this.length)
    第一个参数表示从该位置开始替换数据,第二个和第三个参数可选,用于指定读取的起始位置和结束位置

    let numbers = [1,2,3,4,5,6];
    numbers.copyWithin(2, 0);//从索引位置2开始,粘贴从位置0开始复制的元素
    console.log(numbers.toString()); //1,2,1,2,3,4
    numbers.copyWithin(2, 4);
    console.log(numbers.toString());//1,2,3,4,3,4

    includes()方法

    ES2016引入的方法,判断某个数组是否包含给定的值。
    第一个参数为要搜索的值,第二个参数为读取的起始位置,默认为0。

    console.log([1, 2, 3].includes(2)); //true
    console.log([1, 2, 3].includes(2,2)); //false
  • 相关阅读:
    单位
    北京户口
    中科院助理工程师
    SQL学习
    question
    ROI选取过程
    IT学习网站
    撞库 拖库
    善用人类记忆的特点去高效学习
    为什么散步对健康很有益处
  • 原文地址:https://www.cnblogs.com/gdjlc/p/14548659.html
Copyright © 2011-2022 走看看