数组方法实现(四)————数组方法unshift()
来源:互联网 发布:淘宝名字v1是啥意思 编辑:程序博客网 时间:2024/06/11 07:15
unshift()方法
1. 定义:将一个或多个元素添加到数组的开头,并返回新数组的长度。2. 语法:arr.unshift(element1, ..., elementN)3. 参数:数组前端添加任意个项4. 返回值:当一个对象调用该方法时,返回其 length 属性值。
代码如下:
方法一:
var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; var arr2 = [1, 2, 3, 4];Array.prototype.copyUnshift = function() { var newArr = [], argLen = arguments.length, len = argLen + this.length; for(var i = 0; i < len; i++) {/* if(i < argLen) { newArr[i] = arguments[i]; } else { newArr[i] = this[i - argLen]; } */ // 上述代码也可写为: newArr[i] = (i < argLen) ? arguments[i] : this[i - argLen]; } for(var i = 0; i < len; i++) { this[i] = newArr[i]; } return len;};arr1.copyUnshift('XXX', 'YYY', 'ZZZ'); // 10arr1; // ['XXX', 'YYY', 'ZZZ', 1, 2, 3, 4, 'A', 'B']arr2.copyUnshift(); // 4arr2; // [1, 2, 3, 4]
//同方法一一样,只不过是for循环以递减的形式
var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; var arr2 = [1, 2, 3, 4];Array.prototype.copyUnshift = function() { var newArr = [], argLen = arguments.length, len = argLen + this.length; //同方法一一样,只不过是for循环以递减的形式 for(var i = len - 1; i >= 0; i--) {/* if(i < argLen) { newArr[i] = arguments[i]; } else { newArr[i] = this[i - argLen]; } */ // 上述代码也可写为: newArr[i] = (i < argLen) ? arguments[i] : this[i - argLen]; } for(var i = 0; i < len; i++) { this[i] = newArr[i]; } return len;};
接上递减形式的for循环,进一步可修改为:
方法二: 直接修改原数组,不借助中间数组
var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; var arr2 = [1, 2, 3, 4];Array.prototype.copyUnshift = function() { var argLen = arguments.length, len = argLen + this.length; for(var i = len - 1; i >= 0; i--) {/* if(i > argLen - 1) { this[i] = this[i - argLen]; } else { this[i] = arguments[i]; } */ this[i] = (i > argLen - 1) ? this[i - argLen] : arguments[i]; } return len;};arr1.copyUnshift('XXX', 'YYY', 'ZZZ'); // 10arr1; // ['XXX', 'YYY', 'ZZZ', 1, 2, 3, 4, 'A', 'B']arr2.copyUnshift(); // 4arr2; // [1, 2, 3, 4]
阅读全文
0 0
- 数组方法实现(四)————数组方法unshift()
- javascript中数组对象的unshift()方法
- Perl学习(十三)——数组操作总结 push pop shift unshift
- 数组 — 方法
- 数组方法实现(一)————数组方法join()
- 数组方法实现(二)————数组方法push()、pop()
- 数组方法实现(三)————数组方法shift()
- 数组方法实现(五)————数组方法reverse()
- 数组方法实现(五)————数组方法concat()
- 数组方法实现(六)————数组方法slice()
- 数组方法实现(七)————数组方法splice()
- 数组方法实现(八)————数组方法indexOf()
- 数组的各种方法范例pop,push,unshift,splice,shift
- Js数组pop,push,unshift,splice,shift方法
- javascript:数组中push,pop,unshift方法使用方式
- Js数组pop,push,unshift,splice,shift方法
- Js数组的方法pop,push,unshift,splice,shift
- Js数组的操作push,pop,shift,unshift等方法
- 程序员,我为自己代言~
- Thread
- Python的函数
- spring多视图
- [紫书/Ch6] Play on Words 欧拉回路判定
- 数组方法实现(四)————数组方法unshift()
- 宏定义函数与普通函数的区别
- [TCP] TCP_NODELAY?
- java并发编程实践第二遍笔记(二)20171017
- IDEA怎样使用git将项目上传到github中
- 基于CentOS搭建Postfix、Dovecot邮件服务
- 删除一个目录中文件的文件名中华特定的字符串
- (学习java)双向循环链表
- mybatis动态sql注解in传输列表解决办法