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 ...
随机推荐
- Python字典猜解
摘要 目标 使用Python破解WordPress用户密码 使用Python破解zip压缩包密码 思路 通过表单提交项构建数据包,使用字典中的可选字符进行逐一排列组合暴力破解WordPress的用户密 ...
- KEIL中常见问题
1:..\Obj\phone.axf: Error: L6218E: Undefined symbol err (referred from gprs.o). 函数中定义的外部变量,找不到其源 即在g ...
- AP聚类算法
一.算法简介 Affinity Propagation聚类算法简称AP,是一个在07年发表在Science上的聚类算法.它实际属于message-passing algorithms的一种.算法的基本 ...
- cogs 2223. [SDOI2016 Round1] 生成魔咒
★★☆ 输入文件:menci_incantation.in 输出文件:menci_incantation.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述]魔咒串由许多魔咒字符组 ...
- ExtJS使用入门
extjs是基于 yui 由 jack slocum开发, sencha是他们的公司, sencha是由三个项目合并起来的开源项目: ExtJS, jqTouch, Raphael(拉斐尔, 圣经中的 ...
- C#学习笔记(十六):索引器和重载运算符
二维数组如何映射到一维数组 重载运算符 1.算术运算符 2.关系运算符, < 和 > 成对重载 using System; using System.Collections.Generic ...
- annovar积累
20170222 ANNOVAR简介 ANNOVAR是由王凯编写的一个注释软件,可以对SNP和indel进行注释,也可以进行变异的过滤筛选. ANNOVAR能够利用最新的数据来分析各种基因组中的遗传变 ...
- BZOJ 1189 【HNOI2007】 紧急疏散evacuate
题目链接:紧急疏散 这薄脊题我代码不知不觉就写长了…… 这道题二分答案显然,然后用最大流\(check\)即可.设当前二分的答案为\(x\),那么把每扇门拆成\(x\)个点,第\(i\)个代表在第\( ...
- ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem 2-SAT
题目链接:http://codeforces.com/contest/776/problem/D D. The Door Problem time limit per test 2 seconds m ...
- python pstats ,profile 性能分析
#! /usr/bin/env python # encoding=utf8 import pstats import profile def func1(): for i in range(1000 ...