1.认识数组---内置对象
for...in...循环在数组上找不到任何属性
创建数组
2.数组常用方法
2.1增加&删除(尾部添加push,删除pop)----使用splice也可以删除、增加
使用splice也可以删除,也可以增加
2.2判断是否为数组Array.isArray()
2.3找出某个元素在数组中的索引---indexOf()---只找到第一个匹配的&找不到返回-1
fruits.push('Mango')
// ["Strawberry", "Banana", "Mango"]
let pos = fruits.indexOf('Banana')
// 1
2.4截取---splice&slice
2.4.1splice()----会改变数组长度---删除数组中元素、替换、添加元素
参数,可以设置三个以上参数-----(开始位置(包含),删除个数))
2.4.2slice()----不会改变数组---可以从数组中提取元素---字符串和数组都可以使用--参数两个(开始位置(包含),结束位置(不包含,可以省略不写))
参数-----(开始位置(包含),结束位置(不包含,可以省略不写))---索引可以传递负值
是否改变原数组-----不改变原数组,封装到一个新数组返回,可以新建数组来接收---重要
2.4.3两者的区别-----重要‼️
参数不同
是否改变原数组
功能不同----一个是提取,另一个可以删除、增加、替换(使用splice无法替换无效果,尽量不说)
2.5遍历数组
2.5.1for循环遍历---注意for...in与for of的区别
for...of----可以拿到值,for...in可以拿到下标值(数组)
for...in----拿到对象的属性,对对象不可以使用for...of...会报错
2.5.2forEach()---需要一个函数做参数---数组有几个元素执行几次
IE8以上才支持,使用forEach()才不会出错
共有三个参数,第一个value\第二个是index\第三个是正在遍历的数组
使用
输出结果
2.6数组去重-----重要
2.6.1双重for循环思想---逐一比较(j从i+1开始)---需要使j--再检查一遍,防止
j从i+1开始
2.6.2利用indexOf判断是否存在于新数组中
2.6.3set方法---需要通过Array.from()将类数组转换成数组
案例:
2.7其余常用方法
2.7.1Array.from()
2.7.2sort排序()
适用于数组排序
2.7.3其他遍历方法
some&every
filter---返回一个新数组
map---必须使用return---返回一个新数组