JavaScript数组可以包含任意类型的数组,并通过索引访问每个元素
"use strict";
var arr = [1,2,3,4,5,'a','b','ASD',true];
console.log(arr.length); // 9
//直接给arr.length赋值可以改变数组长度
var lis = [1,2,3];
console.log(lis.length); // 3
lis.length = 5;
console.log(lis); // [ 1, 2, 3, <2 empty items> ]
console.log(lis.length); // 5
lis.length = 2;
console.log(lis); // [ 1, 2 ]
通过索引修改对应的元素:///ps:通过索引赋值,如果超过索引范围同样会改变数组长度。
var str = ['a', 'bc', 'd'];
str[2]=0;
console.log(str); // [ 'a', 'bc', 0 ]
var arr = [1, 2, 3];
arr[5] = 'x';
arr; // arr变为[1, 2, 3, undefined, undefined, 'x']
indexOf()函数:<类似于set ?>
var num = [1,2,3,4,'a','v','s'];
console.log(arr.indexOf('a')); //5
slice() 函数:<切片>
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']
push 和 pop :
push()是向Array的末尾添加若干元素, pop() 是删除最后一个元素:
var arr = [1, 2];
arr.push('A', 'B'); // 返回Array新的长度: 4
arr; // [1, 2, 'A', 'B']
arr.pop(); // pop()返回'B'
arr; // [1, 2, 'A']
arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次
arr; // []
arr.pop(); // 空数组继续pop不会报错,而是返回undefined
arr; // []
shift 和unshift:
unshift()向元素开头添加若干元素,shift()方法是把Array的第一个元素删掉。
var num = [1,2,3];
num.unshift(-1,0);
console.log(num); // [ -1, 0, 1, 2, 3 ]
num.shift();
console.log(num); // [ 0, 1, 2, 3 ]
sort()函数,排序:
默认按照字典序从小到大排序
用法:arr.sort();
reverse()函数:元素颠倒:
用法:arr.reverse()
splice()函数:可以任意修改数组,对数组本身进行修改:
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
1,2分开执行
1、
// 从索引2开始,删除3个元素,并且添加2个元素
arr.splice(2,3,'!','*');
console.log(arr); // [ 'A', 'B', '!', '*', 'F', 'G' ]
2、
// 只删除2个
arr.splice(1,2);
console.log(arr); // [ 'A', 'D', 'E', 'F', 'G' ]
contact()函数,把当前Array和另一个Array连接起来,返回一个新的Array。
实际上,concat()
方法可以接收任意个元素和Array
,并且自动把Array
拆开,然后全部添加到新的Array
里:
var arr = ['A', 'B', 'C'];
arr.concat(1, 2, [3, 4]);
console.log(arr.concat(1, 2, [3, 4]));// ['A', 'B', 'C', 1, 2, 3, 4]
join()函数,把当前数组的元素用指定符号连接,返回连接后的字符串
var arr = ['A', 'B', 'C', 1, 2, 3];
console.log(arr.join('-')); //A-B-C-1-2-3
如果Array
的元素不是字符串,将自动转换为字符串后再连接。
多维数组
如果数组的某个元素又是一个Array
,则可以形成多维数组,例如:
var arr = [[1, 2, 3], [400, 500, 600], '-'];
上述Array
包含3个元素,其中头两个元素本身也是Array
。