引言
- 数组是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方法 |