在JavaScript中,数组是常用的数据类型之一。处理数组时,我们经常需要对数组进行切片或分割操作,这时就会用到slice和splice方法。尽管这两个方法名字相似,但它们的作用和使用方式却有很大的区别。接下来我们就来详细探讨一下这两个方法的用法及其区别。
slice方法返回一个新的数组对象,这个对象是一个由原数组的一部分切出的浅拷贝。这意味着原数组不会被改变,而是生成一个新的数组。slice方法有两个参数:起始索引和结束索引(不包括结束索引)。如果不指定任何参数,则返回原数组的一个完整拷贝。如果只提供一个参数,那么将从开始位置到数组末尾的所有元素都返回。注意,slice方法不会影响原始数组。
相比之下,splice方法则会直接修改原始数组。它通过删除或替换现有元素或者添加新元素来修改数组。splice方法需要两个参数:第一个参数是必需的,表示修改的开始位置;第二个参数也是必需的,表示应该删除的元素数量。此外,还可以添加额外的参数,这些参数将作为新元素添加到指定的开始位置。
数组的slice方法
语法:
array.slice(start, end);
start (可选):表示提取的开始索引(包括该索引)。
end (可选):表示提取的结束索引(不包括该索引)。如果不提供,则默认到数组末尾。
示例:
const arr = [1, 2, 3, 4, 5];
// 从索引 1 开始,到索引 3 结束
const newArr1 = arr.slice(1, 3); // 结果: [2, 3]
// 从索引 2 开始到结束
const newArr2 = arr.slice(2); // 结果: [3, 4, 5]
// 使用负索引,从末尾开始提取
const newArr3 = arr.slice(-2); // 结果: [4, 5]
// 从负索引 -3 开始,到负索引 -1 结束
const newArr4 = arr.slice(-3, -1); // 结果: [3, 4]
console.log(newArr1); // [2, 3]
console.log(newArr2); // [3, 4, 5]
console.log(newArr3); // [4, 5]
console.log(newArr4); // [3, 4]
字符串的 slice 方法
语法:
string.slice(start, end);
start (可选):表示提取的开始索引(包括该索引)。
end (可选):表示提取的结束索引(不包括该索引)。如果不提供,则默认到字符串末尾。
示例:
const str = "Hello, world!";
// 从索引 0 开始,到索引 5 结束
const newStr1 = str.slice(0, 5); // 结果: "Hello"
// 从索引 7 开始到结束
const newStr2 = str.slice(7); // 结果: "world!"
// 使用负索引,从末尾开始提取
const newStr3 = str.slice(-6); // 结果: "world!"
// 从负索引 -6 开始,到负索引 -1 结束
const newStr4 = str.slice(-6, -1); // 结果: "world"
console.log(newStr1); // "Hello"
console.log(newStr2); // "world!"
console.log(newStr3); // "world!"
console.log(newStr4); // "world"
目的和功能:
slice() 方法返回一个新的数组对象,这个对象是一个由原数组的指定部分浅复制而来的。它不修改原数组。
splice() 方法用于添加/删除数组的元素,并返回被删除的元素组成的数组。它会修改原数组。
语法:
slice() 的语法是 arr.slice([begin[, end]])。其中 begin 是开始索引(可选),end 是结束索引(可选)。
splice() 的语法是 arr.splice(index, howmany, item1, ....., itemX)。其中 index 是开始位置,howmany 是要删除的元素数量,后面的参数是要添加到数组中的元素。
返回值:
slice() 返回一个新数组,包含从原数组中选择的元素(从 begin 到 end 的部分)。
splice() 返回被删除的元素组成的数组。如果没有删除任何元素,则返回一个空数组。
对原数组的影响:
slice() 不会修改原数组。
splice() 会修改原数组,并在指定位置添加或删除元素。
使用场景:
如果你需要从数组中选取一部分元素而不改变原数组,应该使用 slice()。
如果你需要添加、删除或替换数组中的元素,应该使用 splice()。
虽然slice和splice在名称上相似,但在功能和用途上却大相径庭。掌握它们的不同点可以帮助你更准确地操作JavaScript中的数组,提高代码的效率和可维护性。
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景
涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。
根据给定的手机号、姓名、身份证、人像图片核验是否一致
通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。
IP反查域名是通过IP查询相关联的域名信息的功能,它提供IP地址历史上绑定过的域名信息。