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?)数组展平,可指定层数