数组(Array)
一、定义
存储一系列有序数据的集合
二、创建方式
1.字面量方式
var arr = []
2.构造函数
var arr = new Array()
3.注意事项
构造函数创建数组时,值写一个值时,这个值表示数组能存储的数组元素个数。
三、数组元素访问
通过数组的索引号(下标)访问数组元素,索引号由0开始。
数组名[索引号]
四、数组的属性和方法
1.属性
length,查询数组的长度或元素个数
2.数组的常用方法
1.push():在数组末尾追加元素
2.pop():删除数组末尾元素
3.unshift():在数组最前面追加元素
4.shift():删除数组最前面的元素
5.splice():删除数组中的某些元素,按照数组的索引号来删除,也可以替换内容
数组名.splice(索引号,数量,替换内容)
6.reverse():反转数组元素
7.sort():数组元素排序
规则:按照字典顺序排序,选比较第一位,再比较后面的位数
由小到大的排序
数组名.sort(function(a,b){
return a-b
})
由大到小的排序
数组名.sort(function(a,b){
return b-a
})
8.concat():拼接两个数组,返回一个新数组
9.join():把数组里面的元素通过字符进行拼接,变成一个字符串。
10.indexOf():返回元素索引号
如果元素不存在,则返回-1
应用场景:先判断元素是否再数组中
3.数组的遍历
1.采用for循环进行遍历
2.forEach():遍历每一个对象
3.map():遍历数组,可以每一个元素进行操作,返回新数组;
作用:遍历数组,映射返回一个新数组
4.filter():遍历数组,找到满足条件的元素,返回新数组
5.find():遍历数组,找到满足条件的第一个元素,返回这个元素。
6.every():数组中每一元素都满足条件,返回true
7.some():数组中只要一个元素满足条件,返回true
8.reduce():遍历数组,数组中每一个值从左到右开始累加,得到一个累加和
语法:
var sum = arr.reduce(function(s,item,index){
return s+item
},0)
第二个参数为初始值
五、数组排序算法
1.作用
将一个乱序的数组变成一个有序的数组
2.元素位置的交换
思路:借助三方变量完成交换位置
var temp = arr[i]
arr[i] = arr[j]
arr[j]=temp
3.冒泡排序
思路:挨着两个元素进行两两比较,前一个数比后一个数大,则交换位置。
万能公式:
对n个元素的数组进行排序,外层循环n-1轮冒泡排序,内层循环n-1-冒泡轮数。挨着两个元素进行两两比较。
var n = arr.length
for(var i = 0;iarr[j+1]){
var temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
4.选择排序
思路:首先在未排序的数组中找到最小(最大)元素,存放在未排序数组的起始位置(交换位置);再从剩余为排序元素中继续寻找最小(最大)元素,放到已排序元素的末尾,反复查找,直到所有元素排序完成。
万能公式:
var n = arr.length
外层循环为选择排序次数,n个数进行n-1次选择排序
for(var i = 0; i< n - 1;i++){
var minIndex = i // 默认i为最小数的下标,将i值赋值给最小下标
for(var j = i+1; j
六、数组去重
1.利用indexOf
定义一个新数组,用于存储不重复的元素;遍历原数组,判断元素是否存在新数组中,如果新数组中不存再,则添加到新数组中。
2.利用splice
让第一个元素与后面的所有元素比较,相同,则截取。