JS数组方法:增删函数、排序函数、累加

114 阅读1分钟

增删函数:都是在原始数组上进行修改

数组元素的增删:

 push():在数组的结尾添加一个或多个元素,返回新数组的长度;

 pop():移除数组最后一个元素,返回移除的元素;

 unshift():在数组的开头添加一个或多个元素,返回新数组的长度;

 shift():删除数组第一个元素,并返回删除的元素;

splice()从数组中间添加、替换和删除元素

arr1.splice(startindex,length,arr2)

length:被替换的长度

添加:length0,arr1.splice(startindex,0,arr2)

替换:length为需要替换的长度

删除:就是不需要替换数组,也就是不用arr2,arr1.splice(startindex,length)

image.png

image.png

排序函数:

1.reverse()方法:将数组中元素的顺序进行翻转

image.png

image.png

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
        }
    })
  1. 如果return返回-1,表示a小于b,数组排序中a会排在b之前
  2. 如果return返回1,表示a大于b,数组排序中a会排在b之后
  3. 如果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):判断是否是数组