JavaScript中的slice() 和 splice()

slice() 和 splice() 是 JavaScript 中 Array 对象原型的两个方法,由于方法名很相像,经常会记混两者的作用,下面来做一个明确的区分。

1.slice(start[, end])

从数组中取元素,返回取出的子数组,对原数组无影响。其中,start 参数必填,表示取元素的起始位置;end 参数可选,表示取元素的终止位置,但不包含 array[end] 元素(可以理解为最终取出的数组中元素有 end -start 个),如果 end 为空,则默认为array.lengh。看几个例子:

var numArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.slice(5) //返回 [5, 6, 7, 8, 9]
numArray.slice(5, 6) //返回 [5]
numArray //[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 原数组不受影响

2.splice(start[, number, item1, item2, …, itemN])

对数组进行添加 / 删除元素,返回被删除的元素,对原数组有影响。其中,start 参数必填,表示进行操作的起始位置;number 参数可选,表示要删除的元素个数,0 为不删除元素;item1, item2, …, itemN 参数可选,表示要添加的元素值。看几个例子:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
myArray.splice(9,1) //[9]
myArray //[0, 1,2, 3, 4, 5, 6, 7, 8]
myArray.splice(8,1, 8, 9, 10) //[8]
myArray //[0, 1,2, 3, 4, 5, 6, 7, 8, 9, 10]
myArray.splice(1)//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
myArray //[0]

补充:JavaScript 中数组的常用操作:

1. pop()  shift() :

1.1 pop() 用于删除数组最后一个元素,并返回被删除的元素:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.pop()//9
numArray //[0,1, 2, 3, 4, 5, 6, 7, 8]

1.2 shift() 用于删除数组的第一个元素,并返回被删除的元素:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.shift()//0
numArray //[1,2, 3, 4, 5, 6, 7, 8, 9]

2. push()  unshift() :

2.1 push() 用于向数组末尾添加一个或多个元素,并返回添加元素后数组的长度:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.push(10,11, 12) //13
numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

2.2 unshift() 用于向数组开头添加一个或多个元素,并返回添加元素后数组的长度:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.unshift(10,11, 12) //13
numArray = [10,11, 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
时间: 2024-08-28 11:18:31

JavaScript中的slice() 和 splice()的相关文章

javascript中的slice()方法

JavaScript中的Array对象提供了一个slice()方法,用于从已有的数组中返回选定的元素. arrayObject.slice(start, end) 参数说明 start 必需(否则没有意义).规定从何处开始选取,即提取起始处的索引(从0开始),从该索引开始提取原数组元素.如果是负数,那么它规定从数组尾部开始算起的位置.也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推.如果没有指定该参数,则从索引0开始.如果该参数大于原数组的长度,则会返回空数组. end 可选.规定从

JS中的slice()和splice()的区别以及记忆方式

总结 splice()会改变原来的数组,返回的是被改变的内容,比如说通过splice删掉了某一项,那么返回的是删掉的这一项,当然还是会以数组的形式返回. slice不会对原数组进行改变,会返回一个新的数组.利用slice同样也可以实现根据索引删除某一项 我是怎么记忆的 splice的前缀是sp,sp代表着super是超级的意思,说明它有超级权限,就是说会改变原有数组的权限,会对原有数组进行删除增加的权限.sp的p念起来就是屁,屁被人体减去的东西,因此splice返回值的就是 被删除的东西. 详解

JavaScript中的slice函数

String.slice(start,end) slice()返回一个子片段,对原先的string没有影响,与subString的区别是,还可以用负数当参数,相当于是length+start,length+end. 例1: var s = "abcdefg"; s.slice(0,4) // "abcd" s.slice(2,4) // "cd" s.slice(4) // "efg" s.slice(3,-1) // &qu

JavaScript中的Array.prototype.slice.call()方法学习

JavaScript中的Array.prototype.slice.call(arguments)能将有length属性的对象转换为数组(特别注意: 这个对象一定要有length属性). 但有一个例外,IE下的节点集合它不能转换(因为IE下的dom对象是以com对象的形式实现,js对象和com对象不能进行转换) 首先,我们来看看JavaScript中的slice用法, 在JavaScript中Array是一个类,slice是此类中的一个方法,slice的中文意思是 '截取' 一个是String.

JavaScript中splice函数

JavaScript中splice函数方法是从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素. arrayObj.splice( start, deleteCount, [item1[, item2[, . . . [,itemN]]]]) 其中arrayObj必选项.一个 Array 对象. start是必选项.指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的.www.hrbfkyy120.com deleteCount是必选项.要移除的元

javascript中的Array对象的slice()、call()、apply()详解

来51cto已经很多年,就是没怎么写文字,今天来一篇介绍JS的,文章篇幅不是很大,大部分内容是我参考了别人的博客后经过自己理解,自己整理的.方便自己以后回顾知识.文中涉及到javascript中的Array对象的slice().call().apply(); slice()方法,在我之前做的项目中,有两种数据类型下用到过.第一种是string类型的,还有一种是Array对象: string对象的slice(): 定义和用法 slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部

javascript中splice()方法的用法

在javascript中splice()方法,是一个很强的数组方法,它有多种用法. splice()主要用途是向数组的中部插入项. 有如下3种方式: 删除--可以删除任意数量的项,只需要指定2个参数:要删除的第一项的位置和要删除项的项数. 例如,splice(0,2)会删除数组中的前两项. 插入--可以向指定位置插入任意数量的项,只需要提供3个参数:骑士位置.0(要删除的项数)和要插入的项. 如果要插入多个项,可以再传入第四.第五,一直任意多个项. 例如,splice(2,1,"red"

巧用Javascript中巧用slice()

slice()是Javascript中Array的一个方法,定义是这样的. arrayObject.slice(start,end)作用是从原数组中从start到end位置截取出一个新的数组,返回值是新的数组. 但是在很多地方把非数组类型数据转换成数组使用slice()也很方便 function ToArray(){ return Array.prototype.slice.call(arguments); } console.log(ToArray(1,2,3,"4",5)); //

JavaScript中字符串截取substring/substr/slice方法总结

最近整前台总多多少少遇到一些字符串截取的小问题,忍不住仔细看了下.接下来总结一下javascript中字符串截取方法的一些应用经验和区别.看了其他博主也有写到,各有风格况且只是个人随记,自己体会的才最深刻. 一些看似简单深究又大有文章的东西弄懂了你才知道自己所学甚浅,部分内容是w3cSchool原文,然后增加了自己的总结和见解.看完有兴趣的也可以去官网查看. 以下为总结: var str = "0123456789"; //此字符串为上下文举例用 一.stringObject.subs