前言

今天重温了一下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的对比小结相关推荐

  1. 最浅显易懂的Javascript 中的slice和splice

    Javascript 中的slice和splice 总: 1.slice方法可以截取一个数组中的片段 支持从头开始截取,或者从末端开始截取,一个参数代表从这个元素一直到末尾.slice方法正如它的字母 ...

  2. JavaScript中数组使用总结

    一. 数组的概念 1.1 什么是数组 数组是指的数据的有序列表. 数组中每个值称之为数组的一个元素. 数组中的每个元素都有一个位置,这个位置称之为索引(下标.index).数组的索引是从 0 开始的 ...

  3. [乐意黎原创] JavaScript中数组使用总结

    原文地址:http://blog.csdn.net/u012468376/article/details/53147098 一. 数组的概念 1.1 什么是数组 数组是指的数据的有序列表. 数组中每个 ...

  4. java中字符串和数组如何比较_[Java教程]javascript中数组和字符串的方法比较

    [Java教程]javascript中数组和字符串的方法比较 0 2016-07-19 23:00:05 ×目录[1]可索引 [2]转换 [3]拼接[4]创建[5]位置 前面的话 字符串和数组有很多的 ...

  5. (基础)JavaScript截取数组:使用splice()和slice()方法

    JS 截取数组(得到数组片段)的方法有两种,分别是使用 splice() 和 slice() 方法,简单说明如下 使用 splice() 截取数组 splice() 方法可以添加元素.删除元素,也可以 ...

  6. javascript中数组的22种方法

    前面的话数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细 ...

  7. JavaScript中数组的增删改查以及应用方式

    数组的增加方法 1.push()方法向数组中末尾添加一个元素,原数组改变 var arr=[1,2,3,4];var arr1=arr.push(6);console.log(arr);//打印出来是 ...

  8. JavaScript中数组交集的最简单代码

    在javascript中实现数组交集的最简单,无库代码是什么? 我想写 intersection([1,2,3], [2,3,4,5]) 并得到 [2, 3] #1楼 通过使用.pop而不是.shif ...

  9. js截取数组slice() 和 splice() 的用法

    一句话先提前概括: slice(start,end) 从哪到哪开始 splice(strt,end,index1,index2) 从什么位置开始,删几个?删了后插入什么新元素? 注意:slice() ...

最新文章

  1. 2022-2028年中国抗菌不锈钢行业研究及前瞻分析报告
  2. 利用硅光子学的移动心脏监护仪
  3. 写一个函数,要求输入一个字符串和一个字符长度,根据字符长度对该字符串进行分隔
  4. vector机器人 WAYS TO INTERACT WITH VECTOR 与 VECTOR 的交互方式
  5. 【Cef编译】 CefSharp编译失败,检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”...
  6. oppo 手机侧滑快捷菜单_关于oppo手机菜单键调出的方法,原来是这样的
  7. 电池和Adapter切换电路改进实验(转)
  8. cdt规约报文用程序解析_用 Python 撸一个 Web 服务器第3章:使用 MVC 构建程序
  9. 权威可信 | 华为云云测通过中国电子技术标准院软件测试工具能力评价
  10. 2017.9.5 组合数学 思考记录
  11. 微软 SQL Server 2016 迁移技术培训实验营
  12. Vue的批量更新原理
  13. 自动化测试 (三) Web自动化测试原理
  14. 【Android测试】在AndroidStudio中进行单元测试
  15. python语言三角函数_python中三角函数_Python中的三角函数
  16. zigbee网关 CC2530 zstack用手机显示终端传来的lm75a温度传感器的值
  17. [Algorithmic Toolbox学习笔记][week6]Placing Parentheses
  18. 编写程序,输出如下图形2
  19. tf.logging
  20. dedecms采集基础篇

热门文章

  1. mysql可能锁的表命令_mysql 默许是表级锁一些不太常用命令
  2. 查看docker容器日志
  3. 使用docker安装elasticsearch
  4. linux内核开发_Linux 内核的代码仓库管理与开发流程简介
  5. 内连接查询的重点分析
  6. MYSQL多字段分组having子句
  7. 事务管理基础:排它锁和共享锁相关知识笔记
  8. 程序幽默:会让程序员争论起来的几个话题
  9. 比尔盖茨的30条经典语录
  10. linux下搭建vsftp锁定根目录,Linux服务搭建之vsftp