JavaScript中数组slice和splice的对比小结
前言
今天重温了一下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]
|
转载于:https://www.cnblogs.com/mmzuo-798/p/7403207.html
JavaScript中数组slice和splice的对比小结相关推荐
- 最浅显易懂的Javascript 中的slice和splice
Javascript 中的slice和splice 总: 1.slice方法可以截取一个数组中的片段 支持从头开始截取,或者从末端开始截取,一个参数代表从这个元素一直到末尾.slice方法正如它的字母 ...
- JavaScript中数组使用总结
一. 数组的概念 1.1 什么是数组 数组是指的数据的有序列表. 数组中每个值称之为数组的一个元素. 数组中的每个元素都有一个位置,这个位置称之为索引(下标.index).数组的索引是从 0 开始的 ...
- [乐意黎原创] JavaScript中数组使用总结
原文地址:http://blog.csdn.net/u012468376/article/details/53147098 一. 数组的概念 1.1 什么是数组 数组是指的数据的有序列表. 数组中每个 ...
- java中字符串和数组如何比较_[Java教程]javascript中数组和字符串的方法比较
[Java教程]javascript中数组和字符串的方法比较 0 2016-07-19 23:00:05 ×目录[1]可索引 [2]转换 [3]拼接[4]创建[5]位置 前面的话 字符串和数组有很多的 ...
- (基础)JavaScript截取数组:使用splice()和slice()方法
JS 截取数组(得到数组片段)的方法有两种,分别是使用 splice() 和 slice() 方法,简单说明如下 使用 splice() 截取数组 splice() 方法可以添加元素.删除元素,也可以 ...
- javascript中数组的22种方法
前面的话数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细 ...
- JavaScript中数组的增删改查以及应用方式
数组的增加方法 1.push()方法向数组中末尾添加一个元素,原数组改变 var arr=[1,2,3,4];var arr1=arr.push(6);console.log(arr);//打印出来是 ...
- JavaScript中数组交集的最简单代码
在javascript中实现数组交集的最简单,无库代码是什么? 我想写 intersection([1,2,3], [2,3,4,5]) 并得到 [2, 3] #1楼 通过使用.pop而不是.shif ...
- js截取数组slice() 和 splice() 的用法
一句话先提前概括: slice(start,end) 从哪到哪开始 splice(strt,end,index1,index2) 从什么位置开始,删几个?删了后插入什么新元素? 注意:slice() ...
最新文章
- 2022-2028年中国抗菌不锈钢行业研究及前瞻分析报告
- 利用硅光子学的移动心脏监护仪
- 写一个函数,要求输入一个字符串和一个字符长度,根据字符长度对该字符串进行分隔
- vector机器人 WAYS TO INTERACT WITH VECTOR 与 VECTOR 的交互方式
- 【Cef编译】 CefSharp编译失败,检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”...
- oppo 手机侧滑快捷菜单_关于oppo手机菜单键调出的方法,原来是这样的
- 电池和Adapter切换电路改进实验(转)
- cdt规约报文用程序解析_用 Python 撸一个 Web 服务器第3章:使用 MVC 构建程序
- 权威可信 | 华为云云测通过中国电子技术标准院软件测试工具能力评价
- 2017.9.5 组合数学 思考记录
- 微软 SQL Server 2016 迁移技术培训实验营
- Vue的批量更新原理
- 自动化测试 (三) Web自动化测试原理
- 【Android测试】在AndroidStudio中进行单元测试
- python语言三角函数_python中三角函数_Python中的三角函数
- zigbee网关 CC2530 zstack用手机显示终端传来的lm75a温度传感器的值
- [Algorithmic Toolbox学习笔记][week6]Placing Parentheses
- 编写程序,输出如下图形2
- tf.logging
- dedecms采集基础篇