跳转到内容

常见 JavaScript 手册/数据类型 - 数组

75% developed
来自维基教科书,开放世界中的开放书籍

创建数组

[编辑 | 编辑源代码]

创建数组最好使用列表字面量,因为它是最流行且简单的语法

a = []; //Empty list
b = [1,2,3,4,5]; //List with 5 elements

操作元素

[编辑 | 编辑源代码]

因此,我们有一个包含五个数字的数组 'b' 和一个空数组 'a'。

a[0] = b[2]; //1
delete b[2]; //2
b[3] = 6; //3
  1. 从数组 b - [1,2,3,4,5] 中获取索引为 2 的元素(数组中的编号从 0 开始)。现在数组 a = [2]
  2. 我们从数组 b 中删除索引为 2 的元素。现在数组 b = [0,1,undefined,3,4]。
  3. 我们更改数组 b 中索引为 3 的元素的值。现在数组 b = [0,1,undefined,6,4]。

操作切片

[编辑 | 编辑源代码]

Array.slice(start,end) - 返回一个数组,包含Array中从start索引到end索引(不包括索引为end的元素)的元素。

a = [0,1,2,3,4,5,6,7];
b = a.slice(2,5); //2,3,4

如果startend是负数,则startend的索引等于(数组长度 + startend)。

a = [0,1,2,3,4,5,6,7];
b = a.slice(2,-2); //2,3,4,5 because length = 8 and 8 + (-2) = 6

Array.splice(start,number,elem...) - 返回一个包含从Arraystart索引开始的number个元素的切片,并将这些元素从Array中删除,并用elem替换它们。

a = [0,1,2,3,4,5,6,7];
b = a.splice(2,3,0,1,0);
print(b); // 2,3,4
print(a); // 0,1,0,1,0,5,6,7

栈和队列

[编辑 | 编辑源代码]

您可以使用任何数组作为栈或队列,为此有四个函数。

名称 操作
Array.pop() 删除并返回Array的最后一个元素
Array.push(elem...) elem插入Array的末尾
Array.shift() 删除并返回Array的第一个元素
Array.unshift(elem...) elem插入Array的开头

例如

Foo = [1,2,3,4,5];
Bar = Foo.pop(); //Bar = 5 , Foo = [1,2,3,4]
Foo.unshift(Bar); // Foo = [5,1,2,3,4]

排序和反转

[编辑 | 编辑源代码]

还有 Array.sort([predicate]) - 如果没有定义 predicate,则按字典顺序对Array中的元素进行排序;否则,按函数predicate的结果对Array中的元素进行排序,该函数获取两个参数,如果第一个参数小于第二个参数则返回-1,如果第二个参数小于第一个参数则返回1,如果参数相等则返回0

Array.reverse() - 反转Array中的元素。

arr = [5,3,1,4,2];
arr.sort();
print(arr); //1,2,3,4,5
arr.reverse();
print(arr); //5,4,3,2,1

连接和合并

[编辑 | 编辑源代码]

Array.concat(elem1...) - 返回一个包含Arrayelem的元素的数组。如果elem[n]是数组,则将elem[n]中的所有元素添加到返回的数组中。

Array.join([separator]) - 返回一个字符串,其中包含所有元素,并在每个元素之前添加一个分隔符。如果未定义分隔符,则分隔符 = ","。

arr1 = [0,1,2,3,4]
arr2 = [5,6,7,8,9]
elem = 10;
arr = arr1.concat(arr2,elem); //0,1,2,3,4,5,6,7,8,9,10
str = arr.join(';'); //0;1;2;3;4;5;6;7;8;9;10
print(str);

数组长度

[编辑 | 编辑源代码]

Array.length - Array中的元素数量

arr = [0,1,2,3,4,5]
print(arr.length); // 6


数据类型 - 数字 · 数据类型 - 字符串

华夏公益教科书