JS中数组splice、slice和字符串slice、split的混淆
数组方法
slice(剪裁方法(返回新数组,不影响原来的数组)(浅拷贝)
(1)无参:如果不传入参数的情况下, silce()方法返回完整的数组
(2)1个参数:在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。
(3)2个参数:如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
let arr = ["张","刘","理想"]let newarr = arr.slice();console.log(arr);console.log(newarr);
let arr = ["张","刘","理想"]let newarr = arr.slice(1);//一个参数console.log(arr);console.log(newarr);
let arr = ["张","刘","理想"]let newarr = arr.slice(0,1);//一个参数console.log(arr);console.log(newarr);
裁剪包含开始位置,不包含结束位置左闭右开区间
splice()–删除、插入、替换(直接影响原数组,且返回一个删除内容的新数组,比如添加就没有删除,则返回一个空数组,替换返回替换掉的内容(替换本身就是删除旧的添加新的))
删除:可以删除任意数量的项,只需指定2 个参数:①要删除的第一项的位置、②要删除的项数。 例如,splice(0,2)会删除数组中的前两项。
插入:可以向指定位置插入任意数量的项,只需提供3 个参数:①起始位置、②0(要删除的项数)、③要插入的项。如果要插入多个项,可以再传入第四、第五,以至任意多个项。例如, splice(2,0,“red”,“green”)会从当前数组的位置2 开始插入字符串"red"和"green"。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3 个参数:①起始位置、②要删除的项数、③要插入的任意数量的项。插入的项数不必与删除的项数相等。例如, splice(2,1,“red”,“green”)会删除当前数组位置2 的项,然后再从位置2 开始插入字符串 “red"和"green”。
let arr = ["张","刘","理想"]console.log("原来的数组是---",arr);let backarr = arr.splice(0,2)console.log("splice对原数组改变之后",arr);console.log("splice返回一个新数组接收的删除内容",backarr);
let arr = ["张","刘","理想"]console.log("原来的数组是---",arr);let backarr = arr.splice(2,0,"增加的内容")//增加在删除的最后一项位置console.log("splice对原数组改变之后",arr);console.log("splice返回一个新数组接收的删除内容",backarr);
增加的的内容放在第一个参数指定位置
增加本质就是删除0项然后在此处增加一个新元素
let arr = ["张","刘","理想"]console.log("原来的数组是---",arr);let backarr = arr.splice(2,1,"替换的内容")console.log("splice对原数组改变之后",arr);console.log("splice返回一个新数组接收的删除内容",backarr);
其实就是把某位置开始删除删除n项之后,增加一个新元素,删除后再增加
字符串
slice()–裁剪(可以是负数,倒数即可-1表示最后一项,-2表示倒数第二项)(不影响原字符串)
和数组一样,把字符串当成一个数组,每个字符就是相当于数组的每一项,其他的都一样
let str = "box-1"; let str1 = str.slice(0,3); //"box" 从下标0开始到下标3结束,一共3个字符,区间[0,3)let str2 = str.slice(2);//"x-1" 从第2位开始,到结束 let str3 = str.slice(-1);//"1" 从最后一位开始到结束,可以是负数console.log(str1);console.log(str2);console.log(str3);
字符串的剪裁还有其他的方法
substring和substr
substring接受两个参数,起始下标、结束下标(不支持负数)
substr接受两个参数,起始下标、长度
let str = "box-12"; let str1 = str.substring(2,3); //"x" 从下标2开始到下标3结束,一共3个字符,区间[2,3)let str2 = str.substr(2,3);//"x-1" 从第2位开始,裁剪3个长度字符 console.log(str1);console.log(str2);
split()–切割(不影响原来字符串,返回一个新数组)
split,
返回值:一个新数组:
传入参数:表示切得方法
split(""):直接切分每个字符,放在数组中
split(","):遇到逗号,进行切割
split(" "):遇到空格,进行切割
let str = "1,2,3"; let arr1 = str.split("");//["1",",","2",",","3"]let arr2 = str.split(",");//["1","2","3"] 以逗号作为分隔切分console.log(str);console.log(arr1);console.log(arr2);
JS中数组splice、slice和字符串slice、split的混淆相关推荐
- js中数组增删查改unshift、push、pop、shift、slice、indexOf、concat、join
全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组增删查改 代码如下: //元素增加 var names=[]; //定义数组并初始化为空 names = ["小明 ...
- js中数组常用的方法总结,包括ES6
原文地址:js中数组常用的方法总结,包括ES6 1.push() 后增 push()方法可以向数组后添加一个新的元素,并返回新数组的长度. 末尾添加,返回长度,改变原数组 var a = [1,2,3 ...
- JS中数组使用的方法
JS中数组使用的方法 数组的介绍 JavaScript Array(数组):属于对象的一种 在句子中的作用就是使用一个单独的变量来存储一系列的值 数组的创建方法 1.字面量方式:var arr=[] ...
- js中数组的增删改查遍历迭代过滤
注:最后附有源码,可自行测试,动动手印象更深刻 js中数组的增删改查.排序.遍历.迭代.过滤 1.展开语法 2.解构赋值 3.剩余解构 4.增删改 5.合并拆分 6.查 7.排序 8.遍历 9.迭代 ...
- js中数组定义Array
全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组定义 js中数组的定义非常简单,包含以下5中方式.不过首先要明确的是数组是Array类型的.不是基本数据类型 代码如下: v ...
- 请尽可能说出js中数组的方法,最少3个,越多越好
我接下来要把数组方法全都过一遍,顺手做个整理. 至于为什么整理这个,最近总听说面试经常会问到这个问题, 面试官灵魂发问:请尽可能说出js中数组的方法,最少3个,越多越好 据可靠消息了解到,如果你回答的 ...
- js中数组的几种循环方式
js中数组的几种循环方式 for循环最基本的循环方式,不多说.这种最基本的循环才是速度最快的,效率最高的. for(var i = 0;i<5;i++){console.log(i) } for ...
- js中数组删除对象的几种方式总结
JS中数组是我们较为常用的一种数据结构,本篇文章主要是介绍js中我们常见的一些删除数组中元素的方式方法,希望可以对大家有所帮助.站长不易,感兴趣的大家可以点击查看原文支持支持. 数组中元素的删除通过删 ...
- VUE.js 中取得后台原生HTML字符串 原样显示问题
今天使用vue调试页面,发现了页面上的一个问题,后台数据传过来的HTML字符串并没有被转换为正常的HTML代码,一拍脑门,发现忘记转换了,于是满心欢喜加上了{{{}}}.但是之后构建发现报错: 为此去 ...
最新文章
- Spring Boot 2.0 常见问题总结(一)
- 不止最佳长论文,腾讯AI在ACL上还有这些NLP成果(附论文链接)
- 在GHOST的WINXPSP2安装SQL SERVER2000个人版时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装之前,必须重新启动计算机。”错误的解决方法...
- vue之slot用法
- C#使用HttpClient进行http操作
- Python----常用模块1
- 线程的生命周期图(附多线程)
- 谷歌EfficientNet缩放模型,PyTorch实现出炉,登上GitHub热榜丨Demo可用
- 开源linux 二进制工具,谷歌开源二进制文件对比工具 BinDiff
- 2017蓝桥杯B组:取数位(递归,求余和除法)
- delphi formshow 刷新_OPPO K7x部分配置和外观公布90Hz刷新率11·4发布
- InnoDB脏页,重做日志文件
- 怎么用计算机画图工具,如何用电脑自带画图工具画平面图
- vb.net程序可以在触摸屏上运行么_简单PLC编程台达PLC模拟量程序
- 一图掌握ICT项目管理流程图【实例】
- CUDA实例系列四:利用GPU加速Sobel边缘检测(含源码)
- 奈氏准则 香农定理 (有公式)
- Joel Spolsky在耶鲁的演讲无责任导读
- 【Vulnhub】之JIS-CTF-VulnUpload-CTF01
- java计算机毕业设计在线辅导答疑系统源码+mysql数据库+系统+lw文档+部署