1. splice()
可以实现删除、插入和替换。
-
删除:需指定 2 个参数:要删除的第一项的位置和要删除的项数。例如, splice(0,2)会删除数组中的前两项。特别地,splice(index, 1)指删除index这一项
-
插入:可以向指定位置插入任意数量的项,需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。例如,splice(2,0,4,6)会从当前数组的位置 2 开始插入4和6。
-
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice (2,1,4,6)会删除当前数组位置 2 的项,然后再从位置 2 开始插入4和6。
2. indexOf()和lastIndexOf()
- indexOf():接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。
- lastIndexOf():接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符。
实例:
var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); //2
console.log(arr.lastIndexOf(5)); //5
console.log(arr.indexOf(5,2)); //2
console.log(arr.lastIndexOf(5,4)); //2
console.log(arr.indexOf(“5”)); //-1
- lastIndexOf()和indexOf()的区别
- indexOf和lastIndexIf都是索引文件
- indexOf是查某个指定的字符串首次出现的位置(从前往后查)
- lastIndexOf是从右向左查某个指定的字符串中最后一次出现的位置(从后往前查)
- 那么问题来了 两个不是一前一后相反方向还是查么?怎么他们两个返回的索引值相同呢?
因为:lastIndexOf()方法虽然是从后往前搜索,但返回的位置是从前开始数和计算的,所以结果和indexOf()方法 返回的相同。