Array学习第一天

104 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

ECMAScript中最常见的类型Array,数组中每个槽位可以存储任意类型的数据,我们可以创建一个数组,它的第一个元素可以是数值,字符串或者对象

创建数组

我们可以使用Array构造函数let study = new Array,我们也可以写具体元素的数量,只需要给构造函数传入一个数值,这样数组的length就会自动创建并设置为这个值,例如:

let study = new Array(10)

我们还可以给Array中传入保存的元素,例如

let study = new Array("math","english","web");

其中构造函数传数值和字符串还是有一些区别,例如

// 创建一个包含10个元素的数组
let study = new Array(10);
// 创建一个只包含一个元素,即字符串"Tom"的数组
let teacher = new Array("Tom");

我们在使用Array构造函数是,也可以省略new操作符,结果和写new操作符是一样的,例如

// 创建一个包含10个元素的数组
let study = Array(10);
// 创建一个只包含一个元素,即字符串"Tom"的数组
let teacher = Array("Tom");

采用数组字面量的方式创建数组, 每个元素之间用逗号隔开,例如

// 创建一个包含4个元素的数组
let study = ["javaScript","web","java","python"];
// 创建一个空数组
let teacher = [];
// 创建一个包含5个元素的数组
let key = [66,77,88,99,55];

注意:我们在使用数组字面量的方法创建数组时不会调用Array构造函数

ES6中还新增了两种创建数组的静态方法:from() 和 of()。

from()用于将数组结构转换为数组的实例

of() 用于将一组参数转为数组的实例

Array.from() 的第一个参数是一个类数组对象, 即任何可迭代的结构。

// 字符串会被拆分为单字符数组
console.log(Array.from("Tom")); // ["T","o","m"]
// 可以使用from()将集合和映射转换为一个数组
const t = new Map().set(55, 66)
                   .set(77, 88);
console.log(Array.from(t)) // [[55, 66], [77, 88]]
// 对数组可以执行浅复制
const t1 = [77, 88]
const t2 = Array.from(t1);
console.log(t1 === t2); false
// 对象转数组
function setArray() {
    return Array.from(argus);
}
console.log(setArray(55,66)); //[55,66]