JS 中 Array.slice() 和 Array.splice()方法

slice

slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array

1 var arr = [‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘, ‘G‘];
2 arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: [‘A‘, ‘B‘, ‘C‘]
3 arr.slice(3); // 从索引3开始到结束: [‘D‘, ‘E‘, ‘F‘, ‘G‘]

注意到slice()的起止参数包括开始索引,不包括结束索引。

如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array

1 var arr = [‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘, ‘G‘];
2 var aCopy = arr.slice();
3 aCopy; // [‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘, ‘G‘]
4 aCopy === arr; // false

splice

splice()就是类似于String的substr()版本,它截取Array的部分元素,然后返回一个新的Array

 1 var arr = [‘Microsoft‘, ‘Apple‘, ‘Yahoo‘, ‘AOL‘, ‘Excite‘, ‘Oracle‘];
 2 // 从索引2开始删除3个元素,然后再添加两个元素:
 3 arr.splice(2, 3, ‘Google‘, ‘Facebook‘); // 返回删除的元素 [‘Yahoo‘, ‘AOL‘, ‘Excite‘]
 4 arr; // [‘Microsoft‘, ‘Apple‘, ‘Google‘, ‘Facebook‘, ‘Oracle‘]
 5 // 只删除,不添加:
 6 arr.splice(2, 2); // [‘Google‘, ‘Facebook‘]
 7 arr; // [‘Microsoft‘, ‘Apple‘, ‘Oracle‘]
 8 // 只添加,不删除:
 9 arr.splice(2, 0, ‘Google‘, ‘Facebook‘); // 返回[],因为没有删除任何元素
10 arr; // [‘Microsoft‘, ‘Apple‘, ‘Google‘, ‘Facebook‘, ‘Oracle‘]
时间: 2024-07-31 15:01:07

JS 中 Array.slice() 和 Array.splice()方法的相关文章

JS 中深拷贝的几种实现方法

JS 中深拷贝的几种实现方法1.使用递归的方式实现深拷贝 //使用递归的方式实现数组.对象的深拷贝 function deepClone1(obj) { //判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝 var objClone = Array.isArray(obj) ? [] : {}; //进行深拷贝的不能为空,并且是对象或者是 if (obj && typeof obj === "object") { for (key i

js中数组去重的几种方法

js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                         for(var i=0;i<arr.length;i++){                                 for(var j=i+1;j<arr.length;j++){                                         if(ar

js中test,exec和match方法

js中test,exec和match方法 转载▼ 标签: 杂谈 分类: jsp test test 返回 Boolean,查找对应的字符串中是否存在模式. var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回. var str = "1a1b1c";var

js中style.display=&quot;&quot;无效的解决方法

本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多的操作,但如果我们style.display=""可能导致没有效果. 看下面一段代码: 复制代码代码如下: <style> #name {     display:none; }</style></head><body><div id=

js中的子类继承父类的方法和属性

上次讲了个简单的继承,这次 咱们讲个稍微复杂点的,那就是让子类继承父类的属性和方法,假设人 (Person)是父类,工人(Worker)是子类,让worker继承person的属性和方法: 父类: function Person(name,age) { this.name=name; this.age=age; } Person.prototype.showName=function() { alert(this.name); } function worker(name,age,job) {

JS中的call()方法和apply()方法用法总结

JS中的call()方法和apply()方法用法总结  : 参考   :     https://blog.csdn.net/ganyingxie123456/article/details/70855586 原文地址:https://www.cnblogs.com/wfblog/p/9169026.html

JS - Array.slice 与 Array.splice

1)Array.slice方法 1.1)接收两个参数: a:起始下标 b:结束下标 1.2)返回由a(包括)至b(不包括)的元素所组成的数组,若一个参数都不传,则返回由全部元素组成的数组. 1.3)该方法执行不影响原数组元素. 1.4)范例图: 2)Array.splice方法 2.1)接收若干参数: a:起始下标 b:提取个数 ...n:之后若干个是待插入的新元素 2.2)返回由从a(包括)开始的b个元素组成的数组,并将...n从a开始依次插入,若一个参数都不传,则返回空数组[]. 2.3)该

javaScript array.slice和array.splice

1. slice Array.slice(start,end) 方法可从已有的数组中返回选定的元素 start 为起始下标 end 为结束下标(可为空,为空时默认结束下标为数组的长度) 注意:此方法不会修改原有数组 var arr = [1,2,3], brr = arr.slice(0,1); alert(brr)://1 alert(arr);//123 2. splice Array.splice(index,howmany,item1,.....,itemX) 方法向/从数组中添加/删除

js中的一些容易混淆的方法!

数组的一些方法: 1.join()和split()方法  与之相反的是split()方法:用于把一个字符串分割成字符串数组.  注意返回的数组中不包括separator本身: 提示和注释注释:如果把空字符串 ("") 用作 a,那么 stringObject 中的每个字符之间都会被分割. 注释:String.split() 执行的操作与 Array.join 执行的操作是相反的. 例子如下: <script type="text/javascript">

数组 slice方法和splice方法的区别

一.slice() 方法 slice()方法可以从已有的数组中返回选定的元素. 语法: arrayObject.slice(start,end) 参数: start:(截取开始位置的索引,包含开始索引)必须,规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位置.(-1指的是最后一个元素,-2指倒数第二个元素,以此类推). end:(截取结束位置的索引,不包含结束索引)可选,规定从何处结束选取.该参数是数组片段结束处的数组下标,如果没有指定该参数,那么切分的数组包含从 start(开