ES6总结(五)

1. 集合

  1. 创建数组
    a. Array.of()方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型;
    如:
    1
    2
    3
    4
    5
    Array.of(7); // [7]
    Array.of(1,2,3); // [1,2,3]
    // Array.of和Array的区别
    Array(7); // [,,,,,,]
    Array(1,2,3); // [1,2,3]
    b. Array.from()可以把set数据结构或者类数组转化为一个数组。
    如:
    1
    2
    var myArr = Array.from("ABCDEFG");
    console.log(myArr); // ["A", "B", "C", "D", "E", "F", "G"]
    注意:必须使用”Array.“这种形式,否则会报错。如下所示:
    1
    2
    var arr = [1,2,3];
    arr.from(); // 报错,arr.from is not a function
    其原因就是因为arr原型上是没有from这个方法的,from方法是定义在Array这个构造函数上的。
  2. 数组新方法
    a. find(返回通过测试的数组的第一个元素的值)和findIndex用来查找当前数组有没有我们想要的数据。
    如:
    1
    2
    3
    4
    let arr = [1,2,3,4,6,5,4];
    arr.find(function(value, index, arr){
    return value < 5; // 1
    });
    1
    2
    3
    4
    let arr = [1,2,3,4,6,5,4];
    arr.findIndex(function(value, index, arr){
    return value < 5; // 0
    });
    b. fill是填充数组里面的所有数据的。
    如:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 例1
    var arr = new Array(10);
    arr.fill(1);
    console.log(arr); // [1,1,1,1,1,1,1,1,1,1]
    // 例2
    var arr = new Array(10);
    arr.fill(1,4,10);
    console.log(arr); // [empty x 4,1,1,1,1,1,1]
    // 例3
    var arr = new Array(10);
    arr.fill(1,4,9);
    console.log(arr); // [empty x 4,1,1,1,1,1,empty]
    c. copyWithin()方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中
    如:
    1
    2
    3
    4
    5
    6
    7
    8
    // 例1
    var arr = [1,2,3,4,5,6,7,8,9,10];
    arr.copyWithin(0,6,9); // 这里面的0表示要放在哪里(索引),6和9表示要拷贝的哪几个数字的索引(趋间)
    console.log(arr); // [7,8,9,4,5,6,7,8,9,10]
    // 例2
    var arr = [1,2,3,4,5,6,7,8,9,10];
    arr.copyWithin(0,3,7);
    console.log(arr); // [4,5,6,7,5,6,7,8,9,10],先选取一个趋间,然后再进行一个平铺的复制。
    d. some、every
    如:
    1
    2
    3
    var args = [10,20,22,8];
    console.log(args.some((age)=>{return age >= 18;})); // true,表明ages里面是否有大于等于18的
    console.log(args.every((age)=>{return age >= 18;})); // false,表明ages里面每一项都需要大于等于18,才会返回true
    e. includes判断当前数组里面有没有我们想要的元素,返回true或者false。
    如:
    1
    2
    3
    var arr = [1,2,3];
    console.log(arr.includes(1)); // true
    console.log(arr.includes(5)); // false

注意:

1
2
3
4
5
6
// 注意点一
var arr = [NaN,2,3];
console.log(arr.includes(NaN)); // true
// 注意点二
var arr = [-0,2,3];
console.log(arr.includes(+0)); // true

2. 迭代器

下面是我以前写的关于迭代器的一个总结,附上链接:
http://blog.chanke.xyz/daipi173/1563/es6zhiiteratordiedaiqi/

3. 生成器Generator

下面是我以前写的关于生成器Generator的一个总结,附上链接:
http://blog.chanke.xyz/daipi173/1669/es6zhishengchengqigenerator/