目录
数组开头添加和删除数组项 unshift() shift()
数组的拼接 arr.concat(arr1,arr2...)
数组对象的创建
字面量创建 var arr=[1,2,3,4]
标准函数(构造函数)创建
var arr=new Array(1,2,3,4)
var arr = new Array(4); //声明一个数组项为4的空数组
var arr = new Array() //创建一个空数组
var arr = new Array(false) //创建的数组是[false]
//[0][1]表示取数组[0],索引为1 结果为undefined
数组对象的方法
数组末尾添加和删除数组项 push() pop()
添加 arr.push(要添加的数组项) 返回值为追加后数组的长度
删除 arr.pop() 返回值是被删除的数组项
数组开头添加和删除数组项 unshift() shift()
添加 arr.unshift(要添加的数据) 返回值为追加后数组的长度
删除 arr.shift() 返回值是被删除的数组项
splice() 删除 替换 添加
删除 arr.splice(删除的起始下标 , 要删除的数组项个数)
替换 arr.splice(删除的起始下标 , 要删除的数组项个数,用来替换的数组项1,数组项2...)
添加 arr.splice(删除的起始下标 , 0 , 用来添加的数组项1,数组项2....)
数组项拼接为字符串 join()
arr.join(‘拼接标识’)
将数组中的所有数组项拼接起来,形成一个字符串,每一个数组项之间嵌入一个拼接标识
若不传入拼接标识,默认使用逗号拼接
数组的翻转 arr.reverse()
数组的拼接 arr.concat(arr1,arr2...)
indexOf() 查找指定数据在数组中首次出现的下标
arr.indexOf(指定的数据) 若数组中不包含该数据,则返回-1
includes() 确定数组是否包含元素
arr.includes(元素[,start]) start 为数字中开始搜索元素的位置 默认为0
包含返回true,不包含返回false
slice() 截取数组
arr.slice(start[,end]) 不改变原数组
isArray() 判断指定数据是否为数组
Array.isArray(data) 是返回true,不是则返回false
数组的排序方法 arr.sort()
默认从小到大,排序标准是每一个数字首位的ASCII编码
自定义
arr.sort(function(a,b)){
return a-b //按照从小到大排列
//return b-a //按照从大到小排列
}
数组对象的拷贝
浅拷贝
任何一个数组对数据的改变都会影响另一个数组
var arr=[1,2,3,4]
var arr1=arr
arr.push(5)
console.log(arr) //[1,2,3,4,5]
console.log(arr1) //[1,2,3,4,5]
深拷贝
原来的数组、复制的副本数组是互相独立的两个数组,操作数据时互不影响
var arr=[1,2,3,4],arr2=[]
for(var i=0;i<arr.length;i++){
arr2[i]=arr[i]
}
arr2.push(5)
console.log(arr) //[1,2,3,4]
console.log(arr2) //[1,2,3,4,5]
数组的排序算法
选择排序
注意内外层循环变量的取值和范围
//方法一:
for(var i=0;i<arr.length-1;i++){//外层循环 循环的是比较的趟数
//声明一个记录最小项下标的变量 假设当前是最小项
var minIndex=i
for(var j=i+1;j<arr.length;j++){//内层循环 循环的是每一趟中比较的次数
if(arr[minIndex]>arr[j]){
//将最小项下标 记录为j
minIndex=j
}
}
//判断当前项下标和最小项下标是否相同 若不同则交换
if(i!=minIndex){
var temp=arr[i]
arr[i]=arr[minIndex]
arr[minIndex]=temp
}
}
//方法二:
for(var i=0;i<arr.length-1;i++){//外层循环 循环的是比较的趟数
for(var j=i+1;j<arr.length;j++){//内层循环 循环的是每一趟中比较的次数
if(arr[i]>arr[j]){
var temp=arr[i]
arr[i]=arr[j]
arr[j]=temp
}
}
}
冒泡排序
相邻两个数组项两两进行比较,如果后一个比前一个小,则交换两者的位置(从小到大)
for(var i=0;i<arr.length-1;i++){//外层循环 length-1趟
for(j=0;j<arr.length-i-1;j++){//内层循环
//相邻两项进行比较 如果后一项比前一项小,就两两交换位置
if(arr[j]>arr[j+1]){
var temp=arr[j]
arr[j]=arr[j+1]
arr[j+1]=temp
}
}
}