当前位置:网站首页>字符slice(), substr(), substring()和 数组slice(), splice()它们各自的区别
字符slice(), substr(), substring()和 数组slice(), splice()它们各自的区别
2022-07-22 11:16:00 【快乐的蜜蜂】
一. slice() 的用法
语法: stringObject.slice(start,end)
1.start 是开始下标的位置,如果是负数,他的原理就是(c.length + start) ,从这个位置开始计算
2.end (可选) 是结束的下标的位置
注意: 如果第一个数值比第二个数值大, 那么返回的就是 “”
代码如下:
<script>
let c = "little boy";
console.log(c.slice(1)); // "ittle boy"
console.log(c.slice(1, 5)) // "ittl"
console.log(c.slice(3, 2)) // ""
console.log(c.slice(-3)) // "boy"
console.log(c.slice(-3, 1)) // ""
console.log(c.slice(1, -3)) // "ittle "
</script>
二. substr()的用法
语法: stringObject.substr(start,length)。
1.start 是代表开始的位置,从该位置开始到字符结束的位置,如果该数字是负数,那么相当于是执行(c.length + start)
2. length (可选) 代表的是截图字符的长度,如果省略该参数,就从开始的位置到结束位置
注意: 如果length数值为负数,那么返回的结果就是 “”
代码如下:
<script>
let c = "little boy";
console.log(c.substr(1)) // "ittle boy"
console.log(c.substr(1, 5)) // "ittle"
console.log(c.substr(3, 2)) // "tl"
console.log(c.substr(-3)) // "boy"
console.log(c.substr(-3, 1)) // "b"
console.log(c.substr(1, -3)) // ""
</script>
三. substring()的用法
语法: stringObject.substring(start,end)。
1. start代表的开始的位置,如果只有一个参数,那么就从开始的位置到结束的位置, 如果是负数的话,默认的处理机制是把他变成0,然后再进行操作
2. end 代表的是结束的位置,如果是负数的话,也会把他变成0然后进行操作.
注意: 如果end的数值比start的数值小,那么他们会进行交换一次,然后再得出结果
代码如下:
let c = "little boy";
console.log(c.substring(-1)) // "little boy"
console.log(c.substring(1, 5)) // "ittl"
console.log(c.substring(3, 2)) // "t"
console.log(c.substring(-3)) // "little boy"
console.log(c.substring(-3, 1)) // "l"
console.log(c.substring(1, -3)) // "l"
好了,上面的string的三个比较难区分的已经说完了,话不多少,我们开始数组的slice() 和 splice的区分吧,为什么要放到这里呢,因为他们很容易混乱,放在一起,方便自己去理解和区分他们
四. 数组 slice的用法
语法: arrayObject.slice(start,end)
1.start 规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
2. end(可选) 规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
注意: slice() 方法是不会影响到原来的数组的,这一点让我们想到了什么呢,没错,深拷贝,实现深拷贝的方法,JSON.stringify(), loadsh的cloneDeep(),好了,话不多少,扯远了,其实,用法跟字符的slice()其实是一样的,让我们看看下面的代码吧,
let arr = ["a", "b", "c", "d", "e", "f"];
document.write(arr.slice(1)) // ["b", "c", "d", "e", "f"]
document.write(arr.slice(1, 4)) // ["b", "c", "d"]
document.write(arr.slice(3, 2)) // []
document.write(arr.slice(-3)) // ["d", "e", "f"]
document.write(arr) // ["a", "b", "c", "d", "e", "f"]
五, 数组splice的方法
语法: arrayObject.splice(start, length, item1, …, itemX)
1. start(必须) 整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
2. length(可选) 代表的是删除的长度,如果不设置,代表的是从开始位置删除到结束位置,如果设置为0,代表的是不删除元素
3. item1, …, itemX (可选) 代表的是在该数组中添加的元素
注意: splice() 方法会对元素组进行影响,这里我们想到了什么,没错是浅拷贝,Object的对象复制都是浅拷贝,因为他们的this对象指向的是同一个,又扯远了,让我们看看下面的代码吧
let arr = ["a", "b", "c", "d", "e", "f"];
document.write(arr.splice(1)) // ["b", "c", "d", "e", "f"]
document.write(arr) // ["a"]
let arr = ["a", "b", "c", "d", "e", "f"];
document.write(arr.splice(1, 4)) // ["b", "c", "d", "e"]
document.write(arr) // ["a", "f"]
**第三位和第四位是在删除的位置,插入新的元素值**
let arr = ["a", "b", "c", "d", "e", "f"];
document.write(arr.splice(1, 4, "little", "boy")) // ["b", "c", "d", "e"]
document.write(arr) // ["a", "little", "boy", "f"]
有任何问题 欢迎指出哦,大家一起进步,非常感谢.
边栏推荐
- 新生儿,脑区分割资料
- 【问题篇】IDEA运行war包项目
- 锡盟蒙古族中学校园有线电视光纤传输系统设计剖析
- 6.拷贝移动及文件内容命令
- 蓝桥杯-连号区间数
- Web编程入门 AdminLTE框架的使用
- 9. User authority related commands
- RPM package management - Yum online management - IP address configuration and network Yum source
- C# 窗体应用DataGridView,使用数据库(Sql和MySQl)对DataGridView绑定数据源,获取数据
- Double pointer in linked list -- fast and slow pointer
猜你喜欢
Coinbase's top 10 forecasts for Web3 and encryption economy in 2022
蓝桥杯-递增三元组
Wechat applet comprehensive case practice 2
Wechat applet comprehensive case practice 1
相比技术与产品 倾听与意见才是Web3当下的首要任务
WinAppDriver 自动测试 winform 自动测试的部署
8.SSH高级命令
Safety first, where is the strength of Beijing modern i-gmp platform?
运行服务器端 Pycharm 提示: Already running
Wechat applet introduction tutorial learning notes - layout basis of UI chapter
随机推荐
C language learning notes: function recursion and iteration + examples
Makefile心得
Why do independent business owners accept CTSI
Quickly find the source code and website materials of the thesis
Have a cup of coffee with the co-founder of cartesi
Coinbase对2022年Web3和加密经济的10大预测
10. System information related commands
Bash variable -- environment variable
Prompt "warning: remote host identification has changed" when SSH
Bash basic functions alias and shortcut keys
Web编程入门 3.1 选择框select
C# Winform开发 数据的序列化与反序列化
Environment variable configuration file
隧道调频广播覆盖系统数字选频光纤拉远漏缆覆盖解决方案
Hnoi2003 laser bomb
C语言实现strlen的三种方法
HNOI2003-激光炸弹
解决编译mosquitto时遇到的问题
Wechat applet comprehensive case practice 2
sed使用心得