数组方法

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的混淆相关推荐

  1. js中数组增删查改unshift、push、pop、shift、slice、indexOf、concat、join

    全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组增删查改 代码如下: //元素增加 var names=[]; //定义数组并初始化为空 names = ["小明 ...

  2. js中数组常用的方法总结,包括ES6

    原文地址:js中数组常用的方法总结,包括ES6 1.push() 后增 push()方法可以向数组后添加一个新的元素,并返回新数组的长度. 末尾添加,返回长度,改变原数组 var a = [1,2,3 ...

  3. JS中数组使用的方法

    JS中数组使用的方法 数组的介绍 JavaScript Array(数组):属于对象的一种 在句子中的作用就是使用一个单独的变量来存储一系列的值 数组的创建方法 1.字面量方式:var arr=[] ...

  4. js中数组的增删改查遍历迭代过滤

    注:最后附有源码,可自行测试,动动手印象更深刻 js中数组的增删改查.排序.遍历.迭代.过滤 1.展开语法 2.解构赋值 3.剩余解构 4.增删改 5.合并拆分 6.查 7.排序 8.遍历 9.迭代 ...

  5. js中数组定义Array

    全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组定义 js中数组的定义非常简单,包含以下5中方式.不过首先要明确的是数组是Array类型的.不是基本数据类型 代码如下: v ...

  6. 请尽可能说出js中数组的方法,最少3个,越多越好

    我接下来要把数组方法全都过一遍,顺手做个整理. 至于为什么整理这个,最近总听说面试经常会问到这个问题, 面试官灵魂发问:请尽可能说出js中数组的方法,最少3个,越多越好 据可靠消息了解到,如果你回答的 ...

  7. js中数组的几种循环方式

    js中数组的几种循环方式 for循环最基本的循环方式,不多说.这种最基本的循环才是速度最快的,效率最高的. for(var i = 0;i<5;i++){console.log(i) } for ...

  8. js中数组删除对象的几种方式总结

    JS中数组是我们较为常用的一种数据结构,本篇文章主要是介绍js中我们常见的一些删除数组中元素的方式方法,希望可以对大家有所帮助.站长不易,感兴趣的大家可以点击查看原文支持支持. 数组中元素的删除通过删 ...

  9. VUE.js 中取得后台原生HTML字符串 原样显示问题

    今天使用vue调试页面,发现了页面上的一个问题,后台数据传过来的HTML字符串并没有被转换为正常的HTML代码,一拍脑门,发现忘记转换了,于是满心欢喜加上了{{{}}}.但是之后构建发现报错: 为此去 ...

最新文章

  1. Spring Boot 2.0 常见问题总结(一)
  2. 不止最佳长论文,腾讯AI在ACL上还有这些NLP成果(附论文链接)
  3. 在GHOST的WINXPSP2安装SQL SERVER2000个人版时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装之前,必须重新启动计算机。”错误的解决方法...
  4. vue之slot用法
  5. C#使用HttpClient进行http操作
  6. Python----常用模块1
  7. 线程的生命周期图(附多线程)
  8. 谷歌EfficientNet缩放模型,PyTorch实现出炉,登上GitHub热榜丨Demo可用
  9. 开源linux 二进制工具,谷歌开源二进制文件对比工具 BinDiff
  10. 2017蓝桥杯B组:取数位(递归,求余和除法)
  11. delphi formshow 刷新_OPPO K7x部分配置和外观公布90Hz刷新率11·4发布
  12. InnoDB脏页,重做日志文件
  13. 怎么用计算机画图工具,如何用电脑自带画图工具画平面图
  14. vb.net程序可以在触摸屏上运行么_简单PLC编程台达PLC模拟量程序
  15. 一图掌握ICT项目管理流程图【实例】
  16. CUDA实例系列四:利用GPU加速Sobel边缘检测(含源码)
  17. 奈氏准则 香农定理 (有公式)
  18. Joel Spolsky在耶鲁的演讲无责任导读
  19. 【Vulnhub】之JIS-CTF-VulnUpload-CTF01
  20. java计算机毕业设计在线辅导答疑系统源码+mysql数据库+系统+lw文档+部署

热门文章

  1. 41、防火检查中安全疏散设施的要求
  2. idea恢复误删文件
  3. python实现DBSCAN聚类
  4. Mac下的SVN客户端
  5. rangeOfString用法
  6. Android初识-Intent用法进阶篇
  7. 30岁是全新的20岁?---《20岁时光不再来》
  8. 《APUE》在Ubuntu上使用apue.h
  9. Android实训-家庭财务管理系统
  10. 野田圣子、希尔顿、松下幸之助,都喝过马桶水吗? .