【超详细~】js的splice函数用法详解

splice

会改变原数组的数据

1.splice(index) 一个值

let arr = [23,34,55,90]
let arr1 = arr.splice(2)
//会改变原数组,从arr索引为2的位置开始其后面的都删除,返回的是移除的所有元素所构成的新数组
//所以arr为[23,34],arr1为[55,90]

2.splice(index, length) 两个值

let arr = [23,34,55,90]
let arr1 = arr.splice(1,1)
//会改变原数组,从arr索引为1的位置开始删除1个值,返回的是移除的所有元素所构成的新数组
//所以arr为[23,55,90],arr1为[34]

3.splice(index, length, value) 三个值

value为插入的值

let arr = [23,34,55,90]
let arr1 = arr.splice(1,2,88)
//会改变原数组,从arr索引为1的位置开始删除2个值,删除的元素用88来代替,返回的是移除的所有元素所构成的新数组
//所以arr为[23,88,90],arr1为[34,55]

注:所以衍生出一个纯粹的插入元素方法

只要把length参数传为0即可,但注意插入的位置是在该索引的位置插入(或者说这个位置的前面插入),剩下元素往后移!

//有一个从小到大排序的数组,插入一个新的数据,保持原有的排序方式不变
//例:let arr = [2,5,6,9,12,34,56],要插入数字17
const insertItem = (val) => {
    
    
    for(i = 0; i < arr.length; i++){
    
    
        if(arr[i] > val){
    
    
            arr.splice(i, 0, val)
            break
        }
    }
}
insertItem(17)
//最终arr为[2,5,6,9,12,17,34,56]

总结

所以说splice可以指定位置移除元素、插入元素、替换元素,是一个万能的方法

arr.push(val) = arr.splice(-1, 0, val)

猜你喜欢

转载自blog.csdn.net/m0_58768224/article/details/130016575