1 concat拼接数组(或者使用…扩展运算符)

直接拼接的话只能拼接平铺的数组或数字,如果是数组中还包含数组的话也就是多维数组就不行了
image.png
这样平铺的都是可以直接拼接到arr数组里面的
arr=[1,2,3,4]拼接完都是这样的
image.png
concat也是可以实现深拷贝如上图修改数组
concat()中不写东西,出来的数组和原数组一样
修改这个新数组,不会影响原数组

…扩展运算符的使用(拼接数组)

[…arr,3,4] 这样出来的arr数组也是arr=[1,2,3,4]

2 数组的删改方法(slice)左闭右开(也就是可以拿到索引开始的数,拿不到索引结束的数)返回一个新的数组不改变原数组

举例 arr.slice(2)如果里面只写一个参数的话,就是从索引为2的开始向后全部截取
举例 arr.slice(2,4)如果里面写2个参数的话,就是从索引为2的开始截取,到索引为4的结束 ,同时 索引为4的是拿不到的(也就是如果2个参数的话,能拿到开始位置的拿不到结束位置的)

注意slice里面的参数可以是负数也就是从后开始计数(这个时候里面的数就代表的不是索引了)
举例
image.png
image.png
最后的就是-1 ,也就是5
上面的参数-2 拿到的就是4,5(也就是从后往前数-2往后截取)
上面的参数是-2,-1拿到的就是4
也就是说不论从前向后拿值,还是从后向前拿值都遵从左闭右开的原则
slice()里面啥也不写的话返回一个和原数组一模一样的数组(拷贝了一份原数组)不会修改原数组

splice(数组的删除和添加元素)会修改原数组

参数1 表示的是起始,增加或删除的位置(索引)
参数2表示的是删除元素的个数
参数3插入的值
格式arr.splice(参数1,参数2)参数1表示的是从索引是几的开始操作,参数2是从索引位置开始操作几个数
举例 下面的意思就是删除oldSkuIdx,就删除它这一项,参数3表示添加一项newSkuNew(添加这一项,这一项在这个数组中所处的位置,就是,之前删除元素所在的位置,不是在开头或者尾部添加的)
image.png
image.png

indexOf(找到一个数在这个数组中首次出现时候的索引)

举例arr.indexOf(a)找到a在数组arr中首次出现的位置的索引
举例arr.lastIndexOf(a)找到a在数组arr中最后一次出现位置的索引

fill(替换数组中的值)是修改的原数组

image.png
arr.fill(参数1,参数2,参数3)
参数1是要用啥值替换
参数2是从那个位置开始替换
参数3是替换到那个位置
如果参数2和参数3不写的话,就是
数组中的所有值都替换成参数1
image.png
image.png
image.png

find方法返回数组中第一个满足条件的成员

findIndex 返回数组中第一个满足条件的成员的索引

image.png