16-小结
8.8 小结
JavaScript的 Array
类有很多功能强大而且灵活性高的内建方法,但是知道在什么情况下用哪个方法却是一件让人望而却步的事情。表8-1到8-4总结了所有的数组方法。
对于 Array.prototype
方法,它会接收一个函数(比如 find
、 findIndex
、 some
、 every
、 map
、 filter
和 reduce
)作为参数,这些函数将会接收表8-1中所列举的参数,继而被数组中的每个元素调用。
| 方 法 | 描 述 | | :----- | :----- | :----- | :----- | | 只是Reduce | 累加结果(初始值,或者上一步调用的结果) | | 全部 | 元素(当前元素) | | 全部 | 当前元素的下标 | | 全部 | 当前数组本身(一般不常用) |
所有接收函数的 Array.prototype
方法都能接收一个(可选的) this
值,该值在函数被调用的时候会派上用场,这样就可以将该函数当做一个对象方法进行调用。
| 当需要… | 使用… | 修改当前数组还是返回拷贝数组 | | :----- | :----- | :----- | :----- | :----- | | 创建一个栈(先进后出[LIFO]) | push(返回新数组的长度),pop | 修改当前数组 | | 创建一个队列(先进先出[FIFO]) | unshift(返回新数组的长度),shift | 修改当前数组 | | 在数组末尾添加多个元素 | concat | 返回数组的拷贝 | | 获取子数组 | slice | 返回数组的拷贝 | | 在任意位置添加或删除元素 | splice | 修改当前数组 | | 剪切并替换数组元素 | copyWithin | 修改当前数组 | | 填充数组 | fill | 修改当前数组 | | 反转数组 | reverse | 修改当前数组 | | 数组排序 | sort(传入函数来进行自定义排序) | 修改当前数组 |
| 当需要查找… | 使用… | | :----- | :----- | :----- | :----- | | 元素的下标 | indexOf(简单的值),findIndex(复杂的值) | | 最后一个元素的下标 | lastIndexOf(简单值) | | 元素本身 | find | | 数组中符合条件的元素 | some | | 数组中所有元素都符合给定条件 | every |
| 当需要… | 使用… | 修改当前数组还是返回拷贝数组 | | :----- | :----- | :----- | :----- | :----- | | 转化数组中的所有元素 | map | 返回数组的拷贝 | | 根据给定条件排除数组元素 | filter | 返回数组的拷贝 | | 把整个数组转化成另一种数组类型 | reduce | 返回数组的拷贝 | | 把元素转化成字符串并合并 | join | 返回数组的拷贝 |