Hi Array!~~~ 你所经常遇见的 TA!
JS 数组操作指南
什么是数组?var a = [1,2,3]; var b = [4,5,6]; 这就是数组,使用中括号包括,里面的每一项都是数组对象
一:Array 对象属性
length: 数组的长度(从 1 开始计算)
prototype: 原形,可以给数组添加属性和方法
二:基础-->Array 数组方法
1.concat()
不改变原数组连接两个或多个数组,
2. join()
不改变原数组把数组转换为字符串
3.pop()
改变原数组删除并返回数组的最后一个元素
4.push()
改变原数组向数组末尾添加一个或多个元素并返回新的数组长度
5.reverse()
改变原数组颠倒数组中元素的顺序
6.shift()
改变原数组把数组的第一个元素从其中删除并返回被删除的元素
7.unshift()
改变原数组把数组的第一个元素从其中删除并返回数组长度
8.sort()
改变原数组对数组的元素进行排序
9.slice()
不改变原数组从已有的数组中返回选定的元素 slice(start, end)开始选定的位置,默认从 0 开始,不包括 end
应用:可以实现简单的浅拷贝
扩展:深拷贝:JSON.parse(JSON.stringify(array))
10.splice()
改变原数组向数组中添加/删除元素并返回被删除的元素数组
splice(idnex,howmany,item1, .....,itemX)index:数组元素的位置(下标),默认从 0 开始 howmany:要删除的数量,不填则删除后面的所有元素 itemX:要添加的元素
11.toString()
不改变原数组将数组转换为字符串,并返回结果
三:进阶-->数组操作
1.Array.isArray()
判断是否是数组, 返回布尔值
2.Array.of()
将参数转换为数组 #与直接在外层加一个 [ ]是一样的
3.Array.from()
将数组对象转化为数组所谓数组对象即:与数组形式类同的对象,有长度值: length
与 new Set() 配合使用实现数组的去重
4.new Set()
对象方法,配合操作数组,<u>返回数组对象</u>
add: 添加值,返回对象本身
clear: 删除所有值
delete: 删除某个值,返回布尔值
forEach: 遍历
has: 判断是否存在,返回布尔值
四:数组循环
介绍
for()
for in
for of
forEach()
map()
find()
filter()
reduce()
some()
every()
flat()
判断是否存在指定数据
indexOf(data) 不存在则返回 -1
includes(data) 返回 Boolean
1) 使用篇
0. 将要使用的数据
1. for 循环
2. for in 循环
3. for of 循环
ES6 引入的新的语法,用法与 for in 类同,但是不能遍历对象
不同点:
for of 遍历的是数组的值
for in 遍历的是数组的索引(对象的键值)
4. forEach()
不改变原数组,没有返回值,无法中断跳出循环
使用 return 就是 continue,跳过当前代码执行下一个循环,不会中断跳出循环
接受三个参数: 遍历的当前项,当前索引,原始数组
使用中一般不会去加第三项原始数组,前两项就够了
5. map()
不改变原数组
遍历数组,进行操作,返回操作后的值
6. find()
不改变原数组,返回符合条件的当前项
接受参数与 forEach 相同: item,index,array
7. filter()
不改变原数组,返回过滤后的数组
接受参数与 forEach 相同: item,index,array
8. reduce()
不改变原数组,
默认使用: array.reduce((prev, cur, index, array) => { return prev+ }, init)
接收参数:prev(上一次的返回值), cur(当前值), index(索引), array(元数组), init(初始值)
9. some()
遍历数组是否存在满足条件的元素
接受参数: item,index,array
10. every()
遍历数组是否全部满足条件
接受参数: item,index,array
11. flat()
遍历展开数组
接受参数: depth, 默认为 1,即只展开一层,使用 Infinity 展开所有层
版权声明: 本文为 InfoQ 作者【Chalk】的原创文章。
原文链接:【http://xie.infoq.cn/article/550e0a5cca428017a879daab0】。文章转载请联系作者。
评论