0%

js集合引用类型-Array

js集合引用类型-Array

js中的数组类型是动态数组;

1.创建数组方式

let type = new Array()

let type = new Array(“元素1”,”元素2”….)

let type = new Array(length) length:数组长度

let type = [“元素1”,”元素2”….]

let type = []

注意:与对象一样,在使用数据字面量表示法创建数组不会调用Array构造函数

Array 构造函数还有两个 ES6 新增的用于创建数组的静态方法:from()和 of()。from()用于将类数组结构转换为数组实例,而 of()用于将一组参数转换为数组实例。
Array.from()的第一个参数是一个类数组对象,即任何可迭代的结构,或者有一个 length 属性
和可索引元素的结构。这种方式可用于很多场合:

1
2
// 字符串会被拆分为单字符数组
console.log(Array.from("Matt")); // ["M", "a", "t", "t"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 可以使用 from()将集合和映射转换为一个新数组
const m = new Map().set(1, 2)
.set(3, 4);
const s = new Set().add(1)
.add(2)
.add(3)
.add(4);
// arguments 对象可以被轻松地转换为数组
function getArgsArray() {
return Array.from(arguments);
}
console.log(getArgsArray(1, 2, 3, 4)); // [1, 2, 3, 4]
// Array.from()对现有数组执行浅复制
const a1 = [1, 2, 3, 4];
const a2 = Array.from(a1);
console.log(a1); // [1, 2, 3, 4]
alert(a1 === a2); // false

2.数组空位

使用数组字面量初始化数组时,可以使用一串逗号来创建空位(hole)。ECMAScript 会将逗号之间相应索引位置的值当成空位。

ES6 新增方法普遍将这些空位当成存在的元素,只不过值为 undefined

3.数组索引:

数组 length 属性的独特之处在于,它不是只读的。通过修改 length 属性,可以从数组末尾删除或添加元素。来看下面的例子:

1
2
3
4
5
6
7
8
let colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
colors.length = 2;
alert(colors[2]); // undefined

let colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
colors.length = 4;
alert(colors[3]); // undefined

这里将数组 colors 的 length 设置为 4,虽然数组只包含 3 个元素。位置 3 在数组中不存在,因此访问其值会返回特殊值 undefined。

4.检测数组

Array.isArray()方法。这个方法的目的就是确定一个值是否为数组,而不用管它是在哪个全局执行上下文中创建的。来看下面的例子:

1
2
3
if (Array.isArray(value)){ 
// 操作数组
}