JavaScript中数组slice和splice的对比小结
2024-10-18 22:37:16
前言
今天重温了一下Javascript,看到了数组的方法,其中有两个比较相似的方法——splice和splice,看着很像,就是多了一个p,但是用法却相当不一样。
在使用中,可以通过选择一个具有强语义表达性的 API 来减少混淆的发生。
1、slice
slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变
数组的 slice (ECMAScript 5.1 标准 15.4.4.10 节)非常类似于字符串的 slice。根据规范,slice 需要两个参数,起点和终点。它会返回一个包含了从起点开始,到终点之前之间所有元素的新数组。
理解 slice 的功能并不是太难:
1
2
|
'abc' .slice(1,2) // "b" [14, 3, 77].slice(1, 2) // [3] |
需要特别注意的是它并不会修改原数组。
下面的代码段描述了这个行为,x 的值没有变,y 则是被截取的部分。
1
2
3
4
|
var x = [14, 3, 77]; var y = x.slice(1, 2); console.log(x); // [14, 3, 77] console.log(y); // [3] |
2、splice
splice是JS中数组功能最强大的方法,它能够实现对数组元素的删除、插入、替换操作,返回值为被操作的值。
splice删除:color.splice(1,2)
(删除color中的1、2两项);
splice插入:color.splice(1,0,'brown','pink')
(在color键值为1的元素前插入两个值);
splice替换:color.splice(1,2,'brown','pink')
(在color中替换1、2元素);
虽然 splice(15.4.4.12 节)也需要(至少)两个参数,但它的意义则完全不同。
1
2
|
[14, 3, 77].slice(1, 2) // [3] [14, 3, 77].splice(1, 2) // [3, 77] |
除此之外,splice 还会改变原数组。
不要太惊讶,这正是 splice 的本意。
1
2
3
4
|
var x = [14, 3, 77] var y = x.splice(1, 2) console.log(x) // [14] console.log(y) // [3, 77] |
最新文章
- Go语言实战 - revel框架教程之CSRF(跨站请求伪造)保护
- 你必须知道的HTTP错误
- Dynamic CRM2016在一台本地服务器安装部署
- 64位Win7下安装与配置PHP环境【Apache+PHP+MySQL】
- ubuntu笔记1
- Scala 令人着迷的类设计
- MinGW下简单编译FFmpeg
- R语言︱基本函数、统计量、常用操作函数
- Entity Framework Core系列之DbContext
- JenKins自动化构建部署流程参考
- 为什么HashMap初始大小为16,为什么加载因子大小为0.75,这两个值的选取有什么特点?
- POJ1151-扫面线+线段树+离散化//入门题
- SpringCloud和Springboot
- linux 模拟发http请求的例子
- 遍历一个可迭代对象中的所有元素,但是却不想使用for循环
- LeetCode--008--字符串转换整数 (atoi)(java)
- Python学习笔记第二十四周(JavaScript补充)
- Python : 什么是*args和**kwargs[转载]
- java非web应用修改 properties/xml配置文件后,无需重启应用即可生效---自动加载
- IntelliJ IDEA 2017版 编译器使用学习笔记(一) (图文详尽版);IDE快捷键使用;IDE多行代码同时编写