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.log(b.constructor == 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
// 当第 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() 方法

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在JavaScript中,可以使用splice()方法数组进行截取操作。splice()方法既可以删除数组中的元素,也可以插入新的元素。具体使用方式如下: 1. 删除元素: - 语法:`array.splice(start, deleteCount)` - 参数: - start:指定要删除的元素的起始位置索引。 - deleteCount:指定要删除的元素个数。 - 返回值:被删除的元素构成的数组。 - 示例:`const arr = [1,2,3,4,5]; const arr2 = arr.splice(1,3); // 删除从第一位开始的三个元素,返回,原数组变为` 2. 插入新元素: - 语法:`array.splice(start, deleteCount, item1, item2, ...)` - 参数: - start:指定要插入元素的起始位置索引。 - deleteCount:指定要删除的元素个数。 - item1, item2, ...:要插入的新元素。 - 返回值:被删除的元素构成的数组。 - 示例:`const arr = [1,2,3,4,5]; const arr2 = arr.splice(1,3,8,9,5); // 删除从第一位开始的三个元素,并插入8,9,5,返回,原数组变为` 需要注意的是,使用splice()方法会直接修改原数组。如果只是想截取数组的一部分而不修改原数组,可以使用slice()方法slice()方法的使用方式和返回结果在之前的引用中已经给出了详细示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [js数组截取方式splice()和slice()方法](https://blog.csdn.net/curryFMVP/article/details/113627742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [js数组截取](https://blog.csdn.net/qq965359889/article/details/126267543)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [slicesplice数组截取/splice可以插入、删除、替换/数组截取 slice的详细解释](https://blog.csdn.net/m0_56986233/article/details/123328803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值