[]
取元素的时间复杂度为O(1)
-
增:
方法 返回值 说明 push(item1, item2...)
新数组长度 末尾插入 […, item1, item2… ] unshift(item1, item2, ...)
新数组长度 开头插入 [ item1, item2… , …] splice(startIndex, ?deleteCount, item1, item2...)
删除的元素组成的数组 任意位置 concat(?item, ...)
拼接后的新数组 末尾插入, 返回数组副本 。若传入数组,会自动进行解构 -
删:
方法 返回值 说明 pop()
删除的元素 删除数组末尾元素,并返回 shift()
删除的元素 删除数组首部元素,并返回 slice(startIndex, ?endIndex)
删除的元素组成的数组 删除指定区域元素 splice(startIndex, ?deleteCount)
删除的元素组成的数组 删除指定区域开始的指定个数个元素,并以列表形式返回被删除的元素。deleteCount大于剩余元素时,保留startIndex前的元素。 -
改
方法 返回值 说明 splice(startIndex, ?deleteCount, item1, item2...)
同上 同上 -
查
方法 返回值 说明 [index]
查找值 越界返回 undefine
indexOf(item, ?startIndex)
查找值 从头开始找,未找到返回-1 lastIndexOf(item, ?startIndex)
查找值 从末尾开始找, 未找到返回-1 find((value, index, array)=>{ return 布尔值 })
数组值 数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
findIndex((value, index, array)=>{ return 布尔值 })
数组索引 数组中满足提供的测试函数的第一个元素的索引。否则返回 -1
-
遍历
方法 返回值 说明 for循环
- - for(let item of array) { }
- 可以正常响应 continue
,break
,return
,item无法修改原数组forEach( (item, index) => { } )
undefined
无法响应 continue
,break
,return
,item无法修改原数组 -
一些常用方法
方法 返回值 说明 map((value, index, array)=>{})
与原数组等长的新数组 对数组的每一项进行操作并返回一个新数组,每一项的值由回调函数的返回值决定 filter((value, index, array)=>{})
新数组(与原数组不一定等长) 过滤掉回调函数返回值为 false
时对应的数组项reduce((pre, curr, index, array)=>{}, initValue)
一个值 数组累加、累乘等操作,从数组首部开始遍历 reduceRight((pre, curr, index, array)=>{}, initValue)
一个值 同 reduce()
,从数组尾部开始遍历keys()
,values()
,entries()
迭代器对象 - includes(valueToFind, ?fromIndex)
boolean
判断列表中是否有 valueToFind
join(sep)
string
以sep分割列表项,组成一个字符串(sep可为空串)。若数组只有一项,则只返回这一项的字符串,无分隔符 -
Array
类对象上的静态方法
(1)Array.from(arrayLike[, mapFn[, thisArg]])
// 从类数组对象上返回一个新数组
Array.from('foo'); // ['f', 'o', 'o']
Array.from([1,2,3], v => v*2); // [2,4,6]
// 通过设置from的length属性,以及添加索引的对于值,返回一个定制长度和内容的数组
Array.from({length: 3, 0: 15, 1: 'hello'}); // [15, hello, undefined]
Array.from({length: 5}, (v, k) => k); // [0, 1, 2, 3, 4]
(2)Array.isArray(obj)
:判断obj是不是数组
Array.isArray([1,2,3]); // true