js数组截取⽅式splice()和slice()⽅法
js数组截取⽅式splice()和slice()⽅法
1.splice()
splice() ⽅法可以添加元素、删除元素,也可以截取数组⽚段。删除元素时,将返回被删除的数组⽚段,因此可以使⽤ splice() ⽅法截取数组⽚段
// 传递⼀个参数,则该⽅法仅执⾏删除操作,参数值指定删除元素的起始下标(包含该下标元素)
//splice() ⽅法将删除后⾯所有元素
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(2);  //从第三个元素开始执⾏删除
console.log(b);  //被删除的⼦数组是[1,2]
// 传递两个参数,则第 2 个参数值表⽰要删除元素的个数
// 特别注意:如果不执⾏删除操作,第 2 个参数值应该设置为 0,但是不能够空缺,否则该⽅法⽆效
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(2,2);  //从第三个元素开始执⾏删除,删除元素个数为2个
console.log(b);  //被删除的⼦数组是[1,2,5]
var b = a.splice(2,0);  //不执⾏删除操作
console.structor == Array);  //返回true,说明是⼀个空数组
// 传递三个或多个参数,则第 3 个以及后⾯所有参数都被视为插⼊的元素
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(2,2,6,7);
//从第三个元素开始执⾏删除,删除元素个数为2个,第三个及以后的参数作为需要插⼊的元素
console.log(a);  //返回[1,2,6,7,5]
// 特别注意1
/
js数组方法总结/ 当第 1 个参数值⼤于数组length 属性值时,被视为在数组尾部执⾏操作,因此删除⽆效3
// 但是可以在尾部插⼊多个指定元素
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(6,2,2,3);  //起始值⼤于length属性值
console.log(a);  //返回[1,2,3,4,5,2,3]
// 特别注意2
// 如果第 1 个参数为负值,则按绝对值从数组右侧开始向左侧定位。如果第 2 个参数为负值,则被视为 0
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(-2,-2,6,7);  //第⼀、⼆个参数都为负值
console.log(a);  //返回[1,2,3,6,7,4,5]
2.slice()
slice() ⽅法与 splice() ⽅法功能相近,但是它仅能够截取数组中指定区段的元素,并返回这个⼦数组。该⽅法包含两个参数,分别指定截取⼦数组的起始和结束位置的下标
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(2,4);  //截取第三个元素到第五个元素前的所有元素
console.log(b);  //返回[3,4,5]
// 特别注意1
// 第 1 个参数指定起始下标位置,包括该值指定的元素;第 2 个参数指定结束位置,不包括指定的元素
// 特别注意2
// ⽅法的参数可以⾃由设置。如果不传递参数,则不会执⾏任何操作
// 如果仅指定⼀个参数,则表⽰从该参数值指定的下标位置开始,截取到数组的尾部所有元素
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(2);  //截取数组中第三个元素,以及后⾯所有元素
console.log(b);  //返回[3,4,5]
// 特别注意3
// 当参数为负值时,表⽰按从右到左的顺序进⾏定位,即倒数定位法,⽽不再按正数顺序定位(从左到右)
// 但取值顺序依然是从左到右
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(-4,-2);  //截取倒数第四个元素到倒数第⼆个元素前的元素
console.log(b);  //返回[2,3]
// 特别注意4
// 如果起始下标值⼤于或等于结束下标值,将不执⾏任何操作
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(-2,-4);  //截取倒数第⼆个元素到倒数第四个元素前的元素
console.log(b);  //返回空集
// 上⾯⽰例说明数组在截取时,始终是按从左到右的顺序执⾏操作,⽽不会是从右到左的反向操作。
// 特别注意5
// 当起始参数值⼤于或等于 length 属性值时,将不会执⾏任何操作,返回空数组
// 如果第⼆个参数值⼤于 length 属性值时,将被视为 length属性值
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(3,10);  //截取第四个元素,直到后⾯所有元素
console.log(b);  //返回[4,5]
slice() ⽅法将返回数组的⼀部分(⼦数组),但不会修改原数组。⽽ splice() ⽅法是在原数组基础上进⾏截取。如果希望在原数组基础上进⾏截取操作,⽽不是截取为新的数组,这时候就只能够使⽤ splice() ⽅法

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。