美文网首页日常刻书
ES6 数组新用法(一)

ES6 数组新用法(一)

作者: F_wind | 来源:发表于2021-02-04 17:21 被阅读0次

《深入理解ES6》阅读随笔

在 ES6 中,对数组功能进行了扩展。可以使用新增的 Array.of() 和 Array.from() 方法来更加便利的创建数组;针对所有数组对象新增了 find()、findIndexof()、fill() 和 copyWithin() 等方法;另外还有重要的新概念:定型数组。今天先介绍一下 Array.of() 和 Array.from()。

Array.of()

之前 ES5 中使用构造函数的方式新建数组时,存在一些使用起来比较指代不清楚的地方,比如:

let arr1 = Array(2);
console.log(arr1, arr1.length); // 输出 [ <2 empty items> ] 2
let arr2 = Array("2"); // 输出 [ '2' ] 1
console.log(arr2, arr1.length);

在初始化时,如果传入参数为整形 2 ,那么会创建一个长度为 2 的数组,如果传入参数为字符串 2,那么会创建一个长度为 1 的数组,并将字符串 2 赋值到数组的第一个元素上。
在 ES6 中,可以使用 Array.of() 的方式进一步明确创建数组,其参数接收任意类型数据,并依次将值赋予到数组中去:

let arr3 = Array.of(2, "2");
console.log(arr3, arr3.length); // 输出 [ 2, '2' ] 2

Array.from()

在 ES5 中,想要将一个对象或者类数组对象转换为数组时,可以通过写程序的方式,从对象中依次取出数据然后再依次插入到数组中去:

function timer() {
  console.log("default:", arguments);
  let list = [];
  for (let i = 0; i < arguments.length; i++) {
    list.push(arguments[i]);
  }
  console.log("new array:", list);
}
timer(1, 2, 3);
// 输出
// default: [Arguments] { '0': 1, '1': 2, '2': 3 }
// new array: [ 1, 2, 3 ]

而在 ES6 中,有了更便捷现成的办法可以直接转换之,可以在 Array.from() 的第一个参数位置传入一个类数组对象,然后直接就可以转换为数组:

function timer() {
  console.log("default:", arguments);
  console.log("Array.from():", Array.from(arguments));
}
timer(1, 2, 3);
// 输出
// default: [Arguments] { '0': 1, '1': 2, '2': 3 }
// Array.from(): [ 1, 2, 3 ]

还可以给第二个参数传入一个处理函数,动态生成新的数组:

 function timer() {
  console.log("default:", arguments);
  console.log(
    "Array.from(+1):",
    Array.from(arguments, (v) => {
      return v + 1;
    })
  ); 
}
timer(1, 2, 3);
// 输出
// default: [Arguments] { '0': 1, '1': 2, '2': 3 }
// Array.from(+1): [ 2, 3, 4 ]

在第三个参数位置还可以传入一个 this 对象,这里不再深入讨论;
另外,Array.from() 还可用于处理字符串、 Set 、Map、生成器等类型。

相关文章

  • ES6 数组方法

    ES6 以下是个人对ES6 数组方法的理解和学习 map() 用法 : filter() forOf遍历方法 ​ ...

  • Set和Map基本结构

    一、Set 1.基本用法 ES6提供了新的数据结构——Set。它类似数组,但是成员值都是唯一的,没有重复。 Set...

  • set和WeakSet

    1. Set 1.1 基本用法 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有...

  • Set 和 Map 数据结构

    Set 基本用法 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set ...

  • ES6中的Set用法

    基本用法 ES6 提供了新的数据结构 Set。它类似于数组, 但是成员的值都是唯一的,没有重复的值。 Set 本...

  • set数据类型

    set基本用法 ES6 提供的新的数据结构,类似数组,但是成员都是唯一的,没有重复的值 set操作方法 1.add...

  • 第十一章 Set和Map数据结构

    Set 基本用法   ES6提供了新的数据结构---Set。它类似于数组,但是它的成员值都是唯一的,没有重复。Se...

  • set与map

    Set 基本用法 ES6提供了新的数据结构Set,与数组类似,最大的特点是没有重复值,成员是唯一的 Set可以直接...

  • Set 和 Map 数据结构

    1,set 基本用法ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set...

  • ES6 学习笔记(8) Set 和Map数据结构

    1. Set 基本用法ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。(数...

网友评论

    本文标题:ES6 数组新用法(一)

    本文链接:https://www.haomeiwen.com/subject/cjnbtltx.html