数组方法实现(七)————数组方法splice()
来源:互联网 发布:网络渗透 pdf 编辑:程序博客网 时间:2024/06/04 18:13
splice()方法
splice(),主要用途是向数组中部插入项。
删除: 可以删除任意数量的项
只需指定2个参数:要删除的第一项的位置和要删除的项数。插入:可以向指定的位置插入任意数量的项
只需提供三个参数:起始位置、0(要删除的项数)、要插入的项。替换: 可以向指定位置插入任意数量的项,且同时删除任意数量的项。
只需指定三个参数:使其位置, 要删除的项数和要插入的任意数量的项。
注:splice()方法始终都返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则返回空数组)。
Array.prototype.copySplice =function() { var result = [], len = this.length, startIndex = arguments[0], //起始位置 deleteNum = arguments[1], //要删除的项数 insertNum = arguments.length - 2, //要插入的项数 leftArr = [], rightArr = []; // 第一、第二个参数是负数的话,直接返回空。 if( startIndex < 0 || deleteNum < 0) { return result; } // 1.删除功能——————————————返回删除的数组项以及删除后剩余的数组项 for(var i = 0; i < deleteNum; i++) { result[i] = this[startIndex + i]; } for(var i = 0; i < len - deleteNum - startIndex; i++) { this[startIndex + i] = this[startIndex + deleteNum + i]; } this.length = len - deleteNum; // 参数长度小于3个的话,到这里结束,否则继续下面操作 if(insertNum == 0) { return result; } // 2. 插入和替换功能 // 2.1分割数组——————分割点startIndex for(var i = 0; i < len - deleteNum; i++) { if(i < startIndex) { leftArr[leftArr.length] = this[i]; } else { rightArr[rightArr.length] = this[i]; } } rightArr.length = len - startIndex - deleteNum; // 更新rightArr数组长度 // 2.2 插入数组项 for(var i = 0; i < insertNum; i++) { leftArr[startIndex + i] = arguments[2 + i]; } // console.log('leftArr的值是: ' + leftArr + ' rightArr的值是: ' + rightArr); // 2.3 将左右数组连接起来 for(var i = 0; i < len - deleteNum + insertNum; i++) { if(i < startIndex + insertNum) { this[i] = leftArr[i]; } else { this[i] = rightArr[i - startIndex - insertNum]; } } return result; };
阅读全文
0 0
- 数组方法实现(七)————数组方法splice()
- 数组splice方法—去重
- 数组splice()方法
- 数组方法splice
- js数组的splice方法
- js数组的splice方法
- javascript 数组的splice方法
- 手动实现数组slice方法跟splice方法
- Perl学习(十四)——数组操作总结 splice
- js Array数组详情并实例操作(splice)方法
- JavaScript 中splice()方法增删数组元素
- js的数组专有方法splice
- 数组对象的slice和splice方法
- JavaScript的slice()和splice()数组方法
- JavaScript 中数组的 splice() 方法
- js中数组的splice()方法
- Javascript数组---slice(),splice()方法的区别
- 数组的slice()和splice()方法
- markDown语法
- kali 2107.10 搜狗输入法突然消失
- BaseRecyclerViewAdapterHelper源码解读(四) 上拉加载更多
- redis集群原理
- 蟠桃记 --简单递归
- 数组方法实现(七)————数组方法splice()
- 【深入PHP 面向对象】读书笔记(十八)
- devtools
- 剑指offer面试题5——链表之从尾到头打印链表
- (一)切片
- Java 不同方式,不同位置创建String字符串的区别
- Fix could not install *smartsocket* listener
- quartz集成spring
- JavaEE学习笔记之Servlet