当前位置:嗨网首页>书籍在线阅读

16-小结

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

8.8 小结

JavaScript的 Array 类有很多功能强大而且灵活性高的内建方法,但是知道在什么情况下用哪个方法却是一件让人望而却步的事情。表8-1到8-4总结了所有的数组方法。

对于 Array.prototype 方法,它会接收一个函数(比如 findfindIndexsomeeverymapfilterreduce )作为参数,这些函数将会接收表8-1中所列举的参数,继而被数组中的每个元素调用。

表8-1  数组函数参数(按顺序)

| 方  法 | 描  述 | | :----- | :----- | :----- | :----- | | 只是Reduce | 累加结果(初始值,或者上一步调用的结果) | | 全部 | 元素(当前元素) | | 全部 | 当前元素的下标 | | 全部 | 当前数组本身(一般不常用) |

所有接收函数的 Array.prototype 方法都能接收一个(可选的) this 值,该值在函数被调用的时候会派上用场,这样就可以将该函数当做一个对象方法进行调用。

表8-2  数组内容操作

| 当需要… | 使用… | 修改当前数组还是返回拷贝数组 | | :----- | :----- | :----- | :----- | :----- | | 创建一个栈(先进后出[LIFO]) | push(返回新数组的长度),pop | 修改当前数组 | | 创建一个队列(先进先出[FIFO]) | unshift(返回新数组的长度),shift | 修改当前数组 | | 在数组末尾添加多个元素 | concat | 返回数组的拷贝 | | 获取子数组 | slice | 返回数组的拷贝 | | 在任意位置添加或删除元素 | splice | 修改当前数组 | | 剪切并替换数组元素 | copyWithin | 修改当前数组 | | 填充数组 | fill | 修改当前数组 | | 反转数组 | reverse | 修改当前数组 | | 数组排序 | sort(传入函数来进行自定义排序) | 修改当前数组 |

表8-3  数组搜索

| 当需要查找… | 使用… | | :----- | :----- | :----- | :----- | | 元素的下标 | indexOf(简单的值),findIndex(复杂的值) | | 最后一个元素的下标 | lastIndexOf(简单值) | | 元素本身 | find | | 数组中符合条件的元素 | some | | 数组中所有元素都符合给定条件 | every |

表8-4  数组转化

| 当需要… | 使用… | 修改当前数组还是返回拷贝数组 | | :----- | :----- | :----- | :----- | :----- | | 转化数组中的所有元素 | map | 返回数组的拷贝 | | 根据给定条件排除数组元素 | filter | 返回数组的拷贝 | | 把整个数组转化成另一种数组类型 | reduce | 返回数组的拷贝 | | 把元素转化成字符串并合并 | join | 返回数组的拷贝 |