数组方法

160 阅读2分钟

创建数组基本方式

1.使用Array构造函数

let colors = new Array();// new操作符可省略
let colors = Array(20);// 创建length值为20的数组
let colors = Array('red','blue','green');//包含三个字符串的数组

2.使用数组字面量表示法

let colors =['red','blue','green'];
let name =[];
let value =[1,2];

读取和设置数组

colors[1];//读取第二个数组元素的值
colors[2] = 'skyblue';//修改数组第三个元素的值
colors[3] = 'pink';//新增第四个元素

length属性

该属性不止是只读的,还可用于删除,添加数组末尾的操作

let colors =['red','blue','green'];
colors.length = 2; //删除最后一个元素

let colors =['red','blue','green'];
colors.length = 4; //末尾添加一个元素,值为empty

colors.[colors.length] = 'black';//末尾添加一个新元素并赋值

检测数组

Array.isArray()

转换方法

  1. toString() 返回数组的字符串表示,以逗号分隔
  2. valueOf() 返回数组本身
  3. toLocaleString() 与toString方法类似
  4. join() 可返回指定分隔符的字符串,默认使用逗号分隔

栈方法

后进后出last-in-first-out

  1. push() 末尾插入
  2. pop() 末尾移除 同时都可以用于取到数组的最后一项

队列方法

先进先出first-in-first-out

  1. shift() 推入首位
  2. unshift() 移除首位 同时都可以用于取到数组的第一项

排序方法

  1. reverse() 反转数组
  2. sort() 数组排序,接收一个比较函数

操作方法

  1. concat() 多用于连接数组
  2. slice() 切片
  3. splice() 拼接,最强大的数组方法,会改变原数组,该方法返回原数组中被删除的项
splice(0,2) //删除前两项
splice(0,2,'pink','skyblue') //插入—从0开始,删除两个,插入两个
splice(2,1,'red','green') //替换-从2开始,删除一项,插入两个

位置方法

  1. indexOf() 从头开始匹配
  2. lastIndexOf() 从末尾往前匹配 都接收两个参数:要查找的项和(可选的)查找起点位置;没找到-1,找到返回所在位置的索引

迭代方法

对数组中的每一项运行给定函数

  1. every() 如果对每一项都返回true,则返回true
  2. filter() 返回该函数会返回true的项组成的数组
  3. forEach()该方法没有返回值,与for循环一样
  4. map() 返回每次函数调用的结果组成的数组
  5. some() 若函数对其中一项返回true,则返回true 以上都不会改变原数组

归并方法

  1. reduce() 从第一项开始遍历
  2. reduceRight() 从后往前遍历
let numArr =[1,2,3,4,5,4,3,2,1]
var sum = numArr.reduce((prev,cur)=>{
  return prev + cur
})
sum //25

这两个方法的区别在于从那个方向开始遍历