banner
banner
banner
NEWS LETTER

ES6-数组的拓展

Scroll down

扩展运算符:…

Array.from():转数组

Array.of():将一组值转为数组

copyWithin():

  • Array.copyWithin(定位, 从定位开始读, 停止读) :复制到定位的位置(原有数据会覆盖),返回新数组

find(),findIndex(),findLast(),findLastIndex()

  • find():找出第一个符合条件的数组成员,没有返undefined
  • findIndex():找出第一个符合条件的数组成员,没有返-1
  • findLast(): 从后面到前面找起
  • findLastIndex():从后面到前面找起

fill(填充数,填充起始位,结束位)给值填充一个数组

  • [‘a’, ‘b’, ‘c’].fill(7, 1, 2) // [‘a’, 7, ‘c’]

toReversed(),toSorted(),toSpliced(),with() — 不改变原数组,而是返回原数组操作后的拷贝

  • toReversed()对应reverse(),用来颠倒数组成员的位置。
  • toSorted()对应sort(),用来对数组成员排序。
  • toSpliced()对应splice(),用来在指定位置,删除指定数量的成员,并插入新成员。
  • with(index, value)对应splice(index, 1, value),用来将指定位置的成员替换为新的值。

⭐ group()、groupToMap() — 将数组成员分组

  • group((数组当前成员,该成员的索引,原数组) => {return 条件 ? ‘分组名1’ :’分组名2’ }) — 按照字符串分组
  • groupToMap((数组当前成员,该成员的索引,原数组) => {return 条件 ? 分组对象名1 :分组对象名2 }) — 按照对象分组
    1
    2
    3
    4
    5
    6
    7
    const array = [1, 2, 3, 4, 5];
    const odd = { odd: true };
    const even = { even: true };
    array.groupToMap((num, index, array) => {
    return num % 2 === 0 ? even: odd;
    });
    // Map { {odd: true}: [1, 3, 5], {even: true}: [2, 4] }

⭐ 数组的空位

  • Array(3) // [, , ,] —- 遍历空位识别为undefined
  • Array.from()、扩展运算符(…)、entries()、keys()、values()、find()和findIndex()会将空位处理成undefined。
  • copyWithin()会连空位一起拷贝。
  • fill()会将空位视为正常的数组位置。
  • for…of循环也会遍历空位。
  • map()方法遍历,空位是会跳过的。

Array.prototype.flat 扁平化嵌套数组 — ES10

  • 含义:按照深度去遍历数组,并将数组与遍历到的子数组中的元素合并到一个新数组并返回
  • 返回值:返回一个新数组,不改变旧数组
  • 语法:arr.flat(depth)
  • 参数:可选,数组遍历的深度,默认是1
  • 注意:flat()会溢出数组中的空项
  • 示例:
    1
    2
    3
    4
    5
    6
    const arr = [1, 2, [[[[3, 4]]]]];

    arr.flat(); // [1, 2, [[[3, 4]]]]
    arr.flat(3); // [1, 2, [3, 4]]
    arr.flat(-1); // [1, 2, [[[[3, 4]]]]]
    arr.flat(Infinity); // [1, 2, 3, 4]

Array.prototype.flatMap

  • 含义:映射函数映射数组(深度为1)的每个元素,然后压缩成一个新数组
  • 语法:arr.flatMap(function callback(currentVal[,index[,array]]){}[,thisArg])
  • 参数:
    • callback:
      • currentVal: 当前数组在处理的元素
      • index:可选,正在处理的元素索引
      • array: 可选,被调用的数组
    • thisArg:执行callback函数时所使用的this值
  • 返回值:返回一个新数组,并且每个元素都是回调函数的结果
  • 示例:
    1
    2
    3
    let arr = ['My name', 'is', '', 'Lisa'];
    let newArr1 = arr.flatMap(cur => cur.split(' ')); // ["My", "name", "is", "", "Lisa"]
    let newArr2 = arr.map(cur => cur.split(' ')); // [["My", "name"], ["is"], [""], ["Lisa"]]
其他文章
cover
ES6-字符串
  • 24/10/31
  • 15:54
  • ES6
cover
ES6-数值的拓展
  • 24/10/31
  • 15:54
  • ES6
目录导航 置顶
  1. 1. 扩展运算符:…
  2. 2. Array.from():转数组
  3. 3. Array.of():将一组值转为数组
  4. 4. copyWithin():
  5. 5. find(),findIndex(),findLast(),findLastIndex()
  6. 6. fill(填充数,填充起始位,结束位)给值填充一个数组
  7. 7. toReversed(),toSorted(),toSpliced(),with() — 不改变原数组,而是返回原数组操作后的拷贝
  8. 8. ⭐ group()、groupToMap() — 将数组成员分组
  9. 9. ⭐ 数组的空位
  10. 10. Array.prototype.flat 扁平化嵌套数组 — ES10
  11. 11. Array.prototype.flatMap
请输入关键词进行搜索