目录
arr.indexOf、arr.lastIndexOf 和 arr.includes
-
Splice 拼接 (瑞士军刀)
功能:Splice的通常用作删除和插入元素
参数:Splice(index,deleteNum,el1,el2)
参数解析:
index:指从原数组的Index索引处开始
deleteNum:删除原数组deleteNum个元素,可以为0,为0时只做插入操作
el1,el2:插入的新元素
返回值:被删除的元素
是否对原数组修改:是(In place)
-
Slice 切片
功能:将数组从指定位置,拷贝出一份新的数组,而原数组不变
参数:Slice(start,end) 左闭右开,end取不到
参数解析:
start:开始的index
end:结束的index
返回值:切下来的新数组
是否对原数组修改:否(Not in place)
-
concat 连接
功能:从原数组尾部,添加新的元素
参数:concat(arr1,arr2)
参数解析:arr1,arr2是想要新添加进去的数组或者元素,可以使用[]包围,也可以直接书写元素
arr1如果为除数组外的其他对象,只会复制对象的本身。如
let arr = [1, 2];
let arrayLike = {
0: "something",
length: 1
};
alert( arr.concat(arrayLike) ); // 1,2,[object Object]
如果,对象有Symbol.isConcatSpreadable属性,且为true,则可以对属性进行复制
[Symbol.isConcatSpreadable]: true,
返回值:复制后的新数组
是否对原数组修改:否
-
forEach(func)
功能:遍历数组,执行函数
参数:forEach(index,item,arr),也可以是 forEach((index,item,arr)=>{
//操作
})
参数解析:
index 当前元素的索引
item 当前元素
arr 被遍历的数组本身
箭头函数:可以为其他的函数表达形式,如字面量。作用是向forEach中传入一个函数,自定义自己将进行的处理方式。参数是被预设好的,index,item,arr按顺序来。
返回值:无
是否对原数组进行操作:否,只执行函数中的操作,不对原数组进行修改
-
arr.indexOf、arr.lastIndexOf 和 arr.includes
功能:
函数名 | 方向 | 返回值 |
indexOf | 从左往右 | index |
lastIndexOf | 从右往左 | index |
includes | 从左往右 | bool |
参数:(item,start) 三个函数参数相同
参数解析:item,需要查找的元素,start 开始查找的index
返回值:如表中
是否对原数组做修改:否