ES6——数组

82 阅读2分钟

数组创建

1.Array.of():将参数中所有值作为元素形成数组。

2.Array.from():将类数组对象或可迭代对象转化为数组。 例如:map对象、set对象、字符串等

参数说明:Array.from(arrayLike, mapFn, thisArg)

arrayLike:想要转换的类数组对象或可迭代对象。

mapFn:可选,map 函数,用于对每个元素进行处理,放入数组的是处理后的元素。

thisArg:可选,用于指定 map 函数执行时的 this 对象。

注意:

  1. 类数组对象:一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符。
  2. 如果没有length属性,则返回空数组
  3. 元素属性名不为数值且无法转换为数值,返回长度为 length 元素值为 undefined 的数组

数组扩展的方法:

查找:数组空位处理为 undefined

find(): 查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。

findIndex(参数1,参数2) :查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。

参数1:回调函数;

参数2(可选):指定回调函数中的 this 值

image.png

image.png

填充:

fill(参数1,参数2,参数3):将一定范围索引的数组元素内容填充为单个指定的值。

参数1:用来填充的值

参数2:被填充的起始索引

参数3(可选):被填充的结束索引,默认为数组末尾

image.png

image.png

遍历:

entrys():遍历键值对。

keys():遍历键名。

values():遍历键值

包含:

includes(参数1,参数2) :数组是否包含指定值。

参数1:包含的指定值

参数2()可选:搜索的起始索引,默认为0

注意:与 Set 和 Map 的 has 方法区分;Set 的 has 方法用于查找值;Map 的 has 方法用于查找键名。

嵌套数组转一维数组:

flat(参数):参数代表几维数组降维

image.png

image.png

封装一个myflat函数:

 function flatten(arr) {

      let result = [];

  for  (let i = 0; i < arr.length; i++) {

 if  (Array.isArray(arr[i])) {

   result = result.concat(flatten(arr[i]));

    }else {

     result.push(arr[i])

    } }

    return  result

    }

扩展运算符(...)

作用:复制数组,合并数组

image.png

image.png