数组截取slice与splice

发布时间 2023-05-10 11:39:40作者: 南无、

slice截取数组--不改变原数组

var arr1=['1','2','3','4']
// slice(startIndex,endIndex) 截取出的数组包括startIndex的元素,不包括endIndex位置的元素
var arr2=arr1.slice(1,2)//['2']
// 不提供endIndex,即截取到最后一位
var arr3=arr1.slice(2) //['3','4']
// startIndex为负数即从后往前数几位
var arr4=arr1.slice(-3)
// startIndex与endIndex都为负数,则倒着数的第几位到第几位
var arr5=arr1.slice(-3,-1) 
// 如果startIndex>endIndex,则返回空数组
console.log('arr1------',arr1); // ['1', '2', '3', '4']
console.log('arr2------',arr2); // ['2']
console.log('arr3------',arr3); // ['3', '4']
console.log('arr4------',arr4); // ['2', '3', '4']
console.log('arr5------',arr5); // ['2', '3']

splice截取数组--会改变原数组

var arr1=['1','2','3','4']
// splice(startIndex,length,newElement1,newElement2,...) 
arr1.splice(1,2,'5','6') //从第1位开始截取2个长度的元素,并插入'5'、'6'
console.log('arr1------',arr1); // ['1','5','6','4']
// startIndex为负数时,则从右往左数第几位
var arr2=['a','b','c','d']
arr2.splice(-2,1,'e')
console.log('arr2------',arr2) // ['a', 'b', 'e', 'd']
var arr3=['1','2','3','4']
// length为0时,则不进行截取操作
arr3.splice(2,0,'a')
console.log('arr3------',arr3) // ['1', '2', 'a', '3', '4']
// length为负数时,当作0处理