Skip to content

Array对象

Array 是一个 JS 原生提供的对象,同样的,也是一个对象,一个工具函数,一个构造函数

Array 是函数

Array 作为函数或构造函数,基本上没区别

js
var arr = new Array(2);
var arr = Array(2);

注意,不同类型参数会有不一样的行为:

  • 无参数时,返回一个空数组
  • 单个数字参数, 会解读为长度,如果是浮点数、负数,就会 RangeError
  • 单个非数字参数,会解读为数组元素
  • 多个参数,会解读为多个数组元素
js
// 无参数
new Array() // []

// 单个数字参数
new Array(1) // [ empty ]
new Array(3.2) // RangeError: Invalid array length
new Array(-3) // RangeError: Invalid array length

// 单个非数字参数
new Array('abc') // ['abc']
new Array([1]) // [Array[1]]

// 多个参数
new Array(1, 2) // [1, 2]
new Array('a', 'b', 'c') // ['a', 'b', 'c']

静态方法

Array.isArray(x) 判断x是否为数组

实例方法

valueOf和toString

arr.valueOf : 返回本身 arr.toString : 将元素以,拼接为一个字符串作为返回值

数组的7个变异方法

  • push
  • pop
  • shift
  • unshift
  • sort
  • reverse
  • splice

数组的遍历方法

  • forEach(item=>{})
  • map(item=>{})
  • reduce((acc,cur)=>{},)
  • reduceRight((acc,cur)=>{},)

其他非实例方法

  • for...of 值遍历
  • for...in 索引遍历,但是会遍历到其他属性以及原型属性

数组中的查找方法

  • find((item)=> item > 1) 返回满足条件的第一个值,否则 undefined, findLast同理
  • findIndex((item)=> item > 1) 返回满足条件的第一个元素的索引,否则-1,findLastIndex同理
  • indexOf('apple') 返回第一次出现给定元素的下标,否则-1, lastIndexOf同理
  • includes('apple') 返回数组中是否包含给定元素**

其他常用的

  • filter((item)=> item > 1) 数组过滤
  • slice(a, b) 数组切片,从a到b,左闭右开
  • splice(start, deleteCount, item1...) 原地删除/新增元素
  • concat(item...) 数组拼接,其中item可以是数组可以是元素
  • flat(level?) 数组展平,可指定层数