substr和substring,slice和splice的区别,js字符串截取和数组截取
本文参考了文章:https://blog.csdn.net/kenberkeley/article/details/50983734
博主已经总结得很好了,看完之后也能明白,不过还是觉得要自己动手敲一敲,加深理解,并且记录下来,于是就有了这篇博客
首先,substring和substr,看词就知道str指的是字符串,所以都是对字符串进行截取的函数,并且都是返回原字符串的副本,不改变原字符串
var str = "012345678";
console.log(str.substring(1)); // 12345678第二个参数为空,则默认截取到结束
console.log(str.substring(1,4)); // 123, 1表示起始下标,4表示截止下标 console.log(str.substr(1)); // 12345678第二个参数为空,则默认截取到结束
console.log(str.substr(1,4)) // 1234, 1表示起始下标,4表示截取长度
console.log( str.substr(-4) ); // 5678, 可以接受一个负数,截取后四位 console.log(str); // 012345678,原数组不改变
总结一下,
sunstring($1,$2),$1指的是起始下标,$2指的是截止下标,所以截取区间是[$1,$2]
substr($1,$2),$1也指的是起始下标,不同的是$2指的是截取长度,所以截取区间是[$1,$1+$2-1]
第二:slice和spice是针对数组进行操作的(slice也能用于字符串),返回值是一个数组,slice不改变原数组,splice是直接在原数组上进行操作的(直接在数组上操作的还有 pop/push/shift/unshift/sort/reverse)
var arr = [0,1,2,3,4,5,6,7]
console.log(arr.slice(1)); // [1, 2, 3, 4, 5, 6, 7]第二个参数为空,则默认截取到结束
console.log(arr.slice(1,4)); // [1, 2, 3], 1是起始下标,4是结束下标
console.log(arr) // [0, 1, 2, 3, 4, 5, 6, 7] 原数组没有改变 console.log(arr.splice(1,4)); // [1, 2, 3,4] 返回的是被截取的部分
console.log(arr); // [0, 5, 6, 7] 除开被splice截取的部分,原数组还剩下这几个
slice不直接操作数据,返回被被切部分的副本,区间表示为[$1, $2) 。$1 是起始下标,$2 是截止下标。注意不包含$2本身
splice直接操作原数组,返回被切掉的部分, 区间表示为[$1, $1+$2-1] 。 $1 是起始下标, $2 是切多少个
substr和substring,slice和splice的区别,js字符串截取和数组截取的更多相关文章
- 数组的常用方法concat,join,slice和splice的区别,map,foreach,reduce
1.concat()和join() concat()是连对两个或两个数组的方法,直接可以将数组以参数的形式放入 join()是将数组中的所有元素放入一个字符串中,通俗点讲就是可以将数组转换成字符串 2 ...
- JS ,substr、 substring、charAt方法的区别
JS 截取字符串substr 和 substring方法的区别,需要的朋友可以参考下,根据需要自行选择. substr 方法 返回一个从指定位置开始的指定长度的子字符串. stringvar.subs ...
- JS数组slice()和splice()的区别
以前还是纯小白的时候,总会搞混JS数组的 slice() 和 splice() 方法.因为这2个方法名字太像了,就差一个字母,语法也有类似之处. 现在久了没用,有时候也会忘记,所以做一个总结来区 ...
- js中slice和splice的区别
言简意赅,直接上货. slice():该方法会返回一个新的数组,强调:新数组,并不会影响原来的数组.先来看看语法咋说:arrayObject.slice(start,end).其中,start必需,e ...
- 彻底弄懂slice和splice的区别
总觉得数组和字符串中的一些方法的使用很难记,可能是日常都是在学理论,缺少实际应用.不多说了,继续学习吧! 一句话先提前概括: slice(start,end) 从哪到哪开始删 splice(strt, ...
- slice 与 splice 的区别
slice: 定义一个数组:let b = ['a','b','c','d','e'] b:["a", "b", "c", "d& ...
- JS中的slice()和splice()的区别以及记忆方式
总结 splice()会改变原来的数组,返回的是被改变的内容,比如说通过splice删掉了某一项,那么返回的是删掉的这一项,当然还是会以数组的形式返回. slice不会对原数组进行改变,会返回一个新的 ...
- substring和substr,slice和splice
substring 和 substr 这二货都是针对字符串而言的,且都是返回一个副本,而不是在原字符串上直接操作. 上代码: var str = '0123456789'; console.log( ...
- 数仓的字符截取三胞胎:substrb、substr、substring
摘要:下面就来给大家介绍这三个函数在字符截取时的一些用法与区别. 本文分享自华为云社区<GaussDB(DWS)中的字符截取三胞胎>,作者:我站在北方的天空下 . 在GaussDB(DWS ...
随机推荐
- 20145127 《Java程序设计》第四次实验报告
在本周,我们进行了Andirod部分的学习,这一次实验是使用Andirod Studio来运行简单的Andirod小程序,并在自己的手机虚拟机上显示自己的学号,为了达到这一效果,我在Andirod S ...
- 20145314郑凯杰《网络对抗技术》实验9 web安全基础实践
20145314郑凯杰<网络对抗技术>实验9 web安全基础实践 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET ...
- MFC、Qt、C#跨线程调用对象
MFC.Qt.C#都是面向对象的编程库 1.MFC不允许跨线程调用对象,即线程只能调用它本身分配了空间的对象 In a multi-threaded application written using ...
- Linux多线程--使用信号量同步线程【转】
本文转载自:http://blog.csdn.net/ljianhui/article/details/10813469 信号量.同步这些名词在进程间通信时就已经说过,在这里它们的意思是相同的,只不过 ...
- P4113 [HEOI2012]采花 (莫队TLE)
思路 update 11.2 树状数组AC 本题莫队过不去,会TLE ----------------------- 但也是个不错的莫队练手题 ------------------------ 毕竟C ...
- WinForm画网格并填充颜色
因为研究CodeCombat上的最后一题,自己尝试分解题目,然后想到需要画网格,还有最优化的方法 源代码如下 using System; using System.Collections.Generi ...
- 论文笔记——Deep Residual Learning for Image Recognition
论文地址:Deep Residual Learning for Image Recognition ResNet--MSRA何凯明团队的Residual Networks,在2015年ImageNet ...
- Unity3D学习笔记(十六):Animator新动画
新动画系统: 给模型选择动画类型 普通动画:Generic 人形动画:Humanoid 建立动画控制器 - 在Project右击 - 选择Create-AnimatorContorller 将对应动画 ...
- bzoj 3289: Mato的文件管理 莫队+树状数组
3289: Mato的文件管理 Time Limit: 40 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description Mato同学 ...
- C++ 重载new和delete
下边代码对new和delete进行了简单的重载: #include <memory> #include <iostream> #include <cstddef> ...