slice\splice\substr\substring的用法及区别

文章详细介绍了JavaScript中用于截取数组和字符串的四个方法:slice()用于截取并返回数组或字符串的一部分而不改变原数据;splice()用于修改数组,可以删除或添加元素;substr()是针对字符串的,从指定位置开始截取指定长度的字符;substring()同样用于字符串截取,遵循左闭右开原则。这些方法在编程中经常使用,理解其区别和用法至关重要。
摘要由CSDN通过智能技术生成

1. slice()

用途:截取字符串和数组

slice(start,end)

注意:

  1. 是左闭右开区间,包含start不包含end
  2. 浅拷贝,返回从start到end的浅复制新数组
  3. 原数组不会被改变
  4. start必须有,end可选。若start是负数则从数组尾部算起,若没有end则截取到数组最后一个元素。

2.splice()

用途:修改数组

splice(start,deleteCount,item1...)

注意:

  1. 是左闭右闭区间,包含从start数起的delecount的个数
let arr=[1,3,5,7,9,8];
arr.splice(1,3);
console.log(arr)	//[1,9,8]
  1. 原数组会改变,可以删除或添加并修改原数组中的元素

3.substr()

用途:截取字符串

str.substr(start[.length])

注意:

  1. 是左闭右闭区间,start是字符串开始的位置,length表示提取的字符数量
var str = "abcdefghij";

console.log("(1,2): "    + str.substr(1,2));   // (1,2): bc
  1. 返回截取的新字符串,不会修改原字符串

4.substring()

用途:截取字符串

str.substring(start[,indexend])

注意:

  1. 是左闭右开区间,start表示开始的索引,indexEnd表示结束的索引,截取的字符串不包含indexEnd
var str = "abcdefghij";

console.log("(1,2): "    + str.substring(1,2));   // (1,2): b
  1. 返回截取的新字符串,不会修改原字符串

总结

用途:

  • 适用于数组:slice() splice()
  • 适用于字符串:slice() substr() substring()

区间:

  • 左闭右开:slice() substring()
  • 左闭右闭:splice() substr()

是否修改原数组

  • 会:splice()
  • 不会:slice() substr() substring()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,数组和字符串都是常见的数据类型,它们都有一些方法来操作它们。下面是它们常用方法的对比: 1. 长度 数组:使用 `length` 属性返回数组中元素的数量。 ``` let arr = [1, 2, 3, 4, 5]; console.log(arr.length); // 5 ``` 字符串:使用 `length` 属性返回字符串的长度。 ``` let str = "Hello"; console.log(str.length); // 5 ``` 2. 截取 数组:使用 `slice()` 方法截取数组的一部分,并返回一个新的数组。 ``` let arr = [1, 2, 3, 4, 5]; let newArr = arr.slice(1, 3); console.log(newArr); // [2, 3] ``` 字符串:使用 `substring()` 或 `substr()` 方法截取字符串的一部分,并返回一个新的字符串。 ``` let str = "Hello, World!"; let newStr = str.substring(0, 5); console.log(newStr); // "Hello" let newStr2 = str.substr(0, 5); console.log(newStr2); // "Hello" ``` 3. 拼接 数组:使用 `concat()` 方法将多个数组合并成一个,并返回一个新的数组。 ``` let arr1 = [1, 2]; let arr2 = [3, 4]; let newArr = arr1.concat(arr2); console.log(newArr); // [1, 2, 3, 4] ``` 字符串:使用 `concat()` 方法将多个字符串合并成一个,并返回一个新的字符串。 ``` let str1 = "Hello, "; let str2 = "World!"; let newStr = str1.concat(str2); console.log(newStr); // "Hello, World!" ``` 4. 查找 数组:使用 `indexOf()` 或 `lastIndexOf()` 方法查找数组中指定元素的位置。 ``` let arr = [1, 2, 3, 2, 1]; console.log(arr.indexOf(2)); // 1 console.log(arr.lastIndexOf(2)); // 3 ``` 字符串:使用 `indexOf()` 或 `lastIndexOf()` 方法查找字符串中指定子串的位置。 ``` let str = "Hello, World!"; console.log(str.indexOf("o")); // 4 console.log(str.lastIndexOf("o")); // 8 ``` 5. 替换 数组:使用 `splice()` 方法替换数组中的元素。 ``` let arr = [1, 2, 3, 4, 5]; arr.splice(2, 1, "a", "b"); console.log(arr); // [1, 2, "a", "b", 4, 5] ``` 字符串:使用 `replace()` 方法替换字符串中的子串。 ``` let str = "Hello, World!"; let newStr = str.replace("World", "JavaScript"); console.log(newStr); // "Hello, JavaScript!" ``` 总的来说,数组和字符串都有一些相似的方法,但是也有一些不同的方法。需要根据具体的场景选择使用哪种方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值