It has been 1485 days since the last update, the content of the article may be outdated.

基本操作

javascript
>var arr=[1,2,3,'hjh']
1,2,3,"hjh"
>arr.length
4
>arr.indexOf(3)
2
>arr.indexOf('no') //不存在返回-1
-1

可以通过索引把对应的元素修改为新的值,因此,对Array的索引进行赋值会直接修改这个Array:

javascript
var arr = ['A', 'B', 'C'];
arr[1] = 99;
arr; // arr现在变为['A', 99, 'C']
arr[5] = 'x';
arr; // arr变为['A', 99, 'C', undefined, undefined, 'x']

大多数其他编程语言不允许直接改变数组的大小,越界访问索引会报错。然而,JavaScript的Array却不会有任何错误。在编写代码时,不建议直接修改Array的大小,访问索引时要确保索引不会越界。

直接给Array的length赋一个新的值会导致Array大小的变化

javascript
var arr = [1, 2, 3];
arr.length; // 3
arr.length = 6;
arr; // arr变为[1, 2, 3, undefined, undefined, undefined]
arr.length = 2;
arr; // arr变为[1, 2]

slice()方法切片

javascript
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']
arr.slice(); // ['A', 'B', 'C', 'D', 'E', 'F', 'G']

push()方法添加

javascript
>arr.push("push")
5
>arr
[1, 2, 3, "hjh", "push"]
>arr.push("a","push")
7
>arr
[1, 2, 3, "hjh", "push","a","push"]

pop()

javascript
>arr.pop()
"push"
>arr.pop()
"a"
>arr
[1, 2, 3, "hjh", "push"]

unshift和shift

如果要往Array的头部添加若干元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉

javascript
var arr = [1, 2];
arr.unshift('A', 'B'); // 返回Array新的长度: 4
arr; // ['A', 'B', 1, 2]
arr.shift(); // 'A'
arr; // ['B', 1, 2]
arr.shift(); arr.shift(); arr.shift(); // 连续shift 3次
arr; // []
arr.shift(); // 空数组继续shift不会报错,而是返回undefined
arr; // []

sort

可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序:

javascript
var arr = ['B', 'C', 'A'];
arr.sort();
arr; // ['A', 'B', 'C']

reverse

reverse()把整个Array的元素给掉个个,也就是反转:

javascript
var arr = ['one', 'two', 'three'];
arr.reverse();
arr; // ['three', 'two', 'one']

splice

splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:

javascript
var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
// 从索引2开始删除3个元素,然后再添加两个元素:
arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
// 只删除,不添加:
arr.splice(2, 2); // ['Google', 'Facebook']
arr; // ['Microsoft', 'Apple', 'Oracle']
// 只添加,不删除:
arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']

join

javascript
var arr = ['A', 'B', 'C', 1, 2, 3];
arr.join('-'); // 'A-B-C-1-2-3'
arr//['A', 'B', 'C', 1, 2, 3]
arr.join(''); // 'ABC123'

多维数组

javascript
>var arr = [[1, 2, 3], [400, 500, 600], '-'];//[Array[3], Array[3], "-"]
>var x = arr[1][1];
500
plaintext
>var arr = ['小明', '小红', '大军', '阿黄'];
>`欢迎 ${arr.slice(0,arr.length-1)}和${arr[arr.length-1]}同学!`
欢迎 小明,小红,大军和阿黄同学!