增删函数:都是在原始数组上进行修改
数组元素的增删:
push():在数组的结尾添加一个或多个元素,返回新数组的长度;
pop():移除数组最后一个元素,返回移除的元素;
unshift():在数组的开头添加一个或多个元素,返回新数组的长度;
shift():删除数组第一个元素,并返回删除的元素;
splice()从数组中间添加、替换和删除元素
arr1.splice(startindex,length,arr2)
length:被替换的长度
添加:length为0,arr1.splice(startindex,0,arr2)
替换:length为需要替换的长度
删除:就是不需要替换数组,也就是不用arr2,arr1.splice(startindex,length)
排序函数:
1.reverse()方法:将数组中元素的顺序进行翻转
2.sort()方法:将字符串进行排序,字母按顺序排序(大写字母均比小写字母小)。按照UniCode编码进行排序
将数组中的元素按大小排序:
arr.sort(function(a,b){
return a-b})
理解: 这个就相当于:
arr.sort(function(a,b) {
if(a>b) {
return 1
}
if(a == b) {
return 0
}
if(a<b) {
return -1
}
})
- 如果return返回-1,表示a小于b,数组排序中a会排在b之前
- 如果return返回1,表示a大于b,数组排序中a会排在b之后
- 如果return返回0,表示a与b相等,其位置保持不变
累加方法: reduce()和reduceRight()方法,使用指定的函数对数组元素进行组合,生成一个值,接收两个参数。
reduce(参数一,参数二):从左向右操作, reduceRight():从右向左操作
例如:
var numbers = [1,2,23,34,5,6,78,98,900];
numbers.reduce(function(previousValue, currentValue, index,array){
return previousValue + currentValue ;
},initialValue);
参数一:要执行的函数,有返回值
- previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
- currentValue (数组中当前被处理的元素)
- index (当前元素在数组中的索引)
- array (调用 reduce 的数组) 参数二:传递给函数的默认值,可忽略(initialValue)
理解:[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
累加:arr.reduce(function(x,y){return x+y},0)
累积:arr.reduce(function(x,y){return x*y},1)
数组最大值:arr.reduce(function(x,y){return x>y?x:y})
类型判断
Array.isArray(arr):判断是否是数组