方法 | 功能 | 参数 | 是否改变原数组 | 返回值 |
---|
push() | 尾插 | 任意个任意值 | 是 | 返回操作之后的数组长度 |
pop() | 尾删 | 无参 | 是 | 返回被删除的数据 |
unshift() | 头插 | 任意个任意值 | 是 | 返回操作之后的数组长度 |
shift() | 头删 | 无参 | 是 | 返回被删除的数据 |
reverse() | 逆序 | 无参 | 是 | 返回操作之后的数组 |
sort() | 排序 | 回调函数 | 是 | 返回操作之后的数组 |
join() | 转为字符串 | 无参 | 否 | 返回字符串 |
concat() | 拼接数组 | 任意值,任意个 | 否 | 返回拼接之后的数组 |
slice() | 截取 | 一个(从指定索引开始截取到最后),两个(左闭右开) | 否 | 返回被截取的区间,左闭右开 |
splice() | 删除、插入、替换 | 一个(从指定索引开始删除到最后),两个(从指定索引开始,删除n个),三个及以上(从指定索引开始,删除n个,第三个参数是数据,添加到被删除的数据的位置) | 是 | 返回被删除的值 |
indexOf() | 查找数据位置 | 回调函数 | 否 | 存在返回索引,不存在返回-1 |
lastIndexOf() | 查找数据位置 | 回调函数 | 否 | 存在返回索引,不存在返回-1 |
forEach() | 遍历 | 回调函数 | 否 | undefined |
map() | 遍历 | 回调函数 | 否 | 数组(回调函数的值) |
filter() | 遍历 | 回调函数 | 否 | 数组(符合条件的值) |
every() | 遍历 | 回调函数 | 否 | boolean (只要有一个不符合条件,则返回false) |
some() | 遍历 | 回调函数 | 否 | boolean (只要有一个符合条件,则返回true) |
find() | 查找 | 回调函数 | 否 | 返回第一个符合条件的项 |
findIndex() | 查找 | 回调函数 | 否 | 返回第一个符合条件的项的索引 |
fill() | 填充 | 参数1:要填充的值,参数2:开始索引,参数3:结束索引 | 是 | 返回操作后的数组 |
includes() | 是否包含 | 参数1:要查找的值 | 否 | 返回boolean |
Array.from() | 伪转真 | 参数1:伪数组 | / | 返回真数组 |
Array.of() | 一组值转数组 | 任意个 | / | 返回数组 |
例:
const arr = [1,3,5,2,4,6]
// 尾插
console.log(arr.push('10'))
// 头插
console.log(arr.unshift('2'))
// 尾删
console.log(arr.pop())
// 头删
console.log(arr.shift())
// 反转数组
console.log(arr.reverse())
// 排序 从小到大a - b(默认);从大到小b - a
console.log(arr.sort((a, b) => { return a - b }))
// 数组转字符串(以逗号分割)
console.log(arr.toString(), typeof arr.toString())
// 数组转字符串(原数组未改变)
console.log(arr.join(), arr.join('-'))
// 连接数组(原数组未改变)
console.log(arr.concat(22, 88), arr)
// 切割数组(原数组未改变)
// (被切割的部分形成新的数组)(切割遵循'左闭右开'))(出现负数,则负数加数组长度即是下标)
console.log(arr.slice(1, 3), arr.slice(2), arr.slice(4,-2), arr)
// 删除、插入、替换
console.log(arr.splice(4), arr.splice(1, 2), arr.splice(1, 1, 2, 3, 4, 5, 6), arr)
// 查找(ES5新增)
console.log(arr.indexOf(2), arr.indexOf('2'), arr.indexOf('2', 3), arr)
console.log(arr.lastIndexOf(2), arr.lastIndexOf(2, 3), arr)
// 循环(ES5新增)
arr.forEach((item, index, self) => { console.log(`${item}---${index}---${self}`) })
// map映射(ES5新增)
console.log(arr.map((item) => { return item * item }), arr)
// 过滤(ES5新增)
console.log(arr.filter((item) => { return item > 3 }), arr)
// 数组的每一项是否符合条件(全部符合才返回true)(ES5新增)
console.log(arr.every((item) => { return item > 0 }), arr)
// 数组中有一项符合条件,返回true(ES5新增)
console.log(arr.some((item) => { return item < 2 }), arr)
// 伪转真(ES6新增)
console.log(Array.from('123'), Array.from({0: 'hh', 1: '11', length: 2}))
// 将一组值转为数组(ES6新增)
console.log(Array.of('11','12'))
// 找到第一个符合条件的项
console.log(arr.find((item) => { return item > 3 }), arr)
// 找到第一个符合条件的项的索引
console.log(arr.findIndex((item) => { return item > 3 }), arr)
// 填充
console.log(arr.fill(10, 2, 4), arr)
// 是否包含(返回布尔值)
// 与indexOf()的区别:1.indexOf()返回的是数值,而includes()返回的是布尔值;2.indexOf() 不能判断NaN,返回为-1 ,includes()则可以判断
console.log(arr.includes(1))
// 遍历数组键名
Array.from(arr.keys()).forEach((item) => { console.log(item) })
// 遍历数组键值
Array.from(arr.values()).forEach((item) => { console.log(item) })
// 遍历数组键名和键值
Array.from(arr.entries()).forEach((item) => { console.log(item) })