引言
- 数组是javascript中的重要数据结构,可以存储各种数据类型,有很多重要的操作必须牢记;
 - 本文系统总结了javascript数组的各种常见操作,欢迎补充!
 
javascript数组需要掌握的方法
- push、pop
 - shift、unshift
 - splice、slice
 - concat、join、sort、reverse
 - 这些方法在下面会详细介绍
 
数组的定义
1  | //方法一,定义后赋值  | 
数组的判断
1  | var arr = new Array();  | 
数组元素的合并
1  | var arr = ['c','b','d'];  | 
数组的属性
- length属性
 
1  | var arr = ['c','b','d'];  | 
- prototype属性
 
1  | function max(){  | 
数组常见操作
- 添加元素
 
1  | var arr = [1,2,"aaa",false];  | 
- 删除元素
 
1  | var arr = [1,2,"aaa",false];  | 
- 移除特定元素
 
1  | var arr = ['a','b','c','d'];  | 
- 截取数组
 
1  | var arr = ['a','b','c','d','e'];  | 
- 连接数组
 
1  | var arr = ['a','b','c','d','e'];  | 
- 拷贝数组
 
1  | var arr = ['a','b','c','d','e'];  | 
- 数组排序
 
1  | var arr = ['e','b','a','d','c'];  | 
- 数组倒序
 
1  | var arr = ['e','b','a','d','c'];  | 
- 判断数组是否包含特定值
 
1  | var arr = ['e','b','a','d','c'];  | 
- 求number数组最大最小值
 
1  | function math(){  | 
数组去重
- 方法一:
- 利用数组的indexOf方法
 
 
1  | function unique (arr) {  | 
- 方法二:
- 利用hash表
 - 可能会出现字符串和数字一样的话出错,如var a = [1, 2, 3, 4, ‘3’, 5],会返回[1, 2, 3, 4, 5]
 
 
1  | function unique (arr)  | 
- 方法三:
- 排序后比较相邻,如果一样则放弃,否则加入到result
 - 会出现与方法2一样的问题,如果数组中存在1,1,’1’这样的情况,则会排错
 
 
1  | function unique (arr) {  | 
- 方法四:
- 最简单但是效率最低的算法,也不会出现方法2和方法3出现的bug
 
 
1  | function unique (arr) {  | 
数组随机扰乱
- 方法一:
- 每次随机抽一个数并移动到新数组中
 
 
1  | function shuffle(array) {  | 
- 方法二:
- 跟方法1类似,只不过通过splice来去掉原数组已选项
 
 
1  | function shuffle(array) {  | 
- 方法三:
- 前面随机抽数依次跟末尾的数交换,后面依次前移
 - 即:第一次前n个数随机抽一个跟第n个交换,第二次前n-1个数跟第n-1个交换,依次类推
 
 
1  | function shuffle(array) {  | 
数组间操作
- 数组求交集
 
1  | //利用filter和数组自带的indexOf方法  | 
- 数组求并集
 
1  | //方法原理:连接两个数组并去重  | 
- 数组求差集
 
1  | //利用filter和indexOf方法  |