原生JS数组方法实现(一)————push()、unshift()、pop()和shift()
push
向数组末尾添加一个或多个元素,并返回数组新的长度
```javascript
function push(){
for(let i=0;i<arguments.length;i++){
this[this.length] = arguments[i];
}
return this.length
}
Array.prototype.push = push;
```
unshift
向数组开头添加一个或多个元素,并且返回数组新的长度
```javascript
function unshift(){
//创建一个新数组接收添加的元素
let newAry = [];
for(let i=0;i<arguments.length;i++){
newAry[i] = arguments[i];
}
let len = newAry.length;
for(let i=0;i<this.length;i++){
newAry[i+len] = this[i];
}
for(let i=0;i<newAry.length;i++){
this[i] = newAry[i];
}
return this.length;
}
Array.prototype.unshift = unshift;
```
pop
删除数组最后一项,并返回该删除项目
```javascript
function pop(){
let returnVal = this[this.length-1];
this.length--;
return returnVal
}
Array.prototype.pop = pop;
```
shift
删除数组第一项,并且返回该删除项目
```javascript
function shift(){
let newAry = [];
let reVal = this[0];
for(let i=0;i<this.length-1;i++){
newAry[i] = this[i+1];
}
for(let i=0;i<newAry.length;i++){
this[i] = newAry[i]
}
this.length--;
return reVal;
}
Array.prototype.shift = shift;
```
最新文章
- $(document).ready() 与window.onload的区别
- 桌面显卡天梯图和桌面cpu天梯图
- Codefroces 750D:New Year and Fireworks(BFS)
- UVA 10815
- PHP连接MySQL的时候报错SQLSTATE[HY000] [2002] No such file or directory
- wydomain
- 转:XBMC源代码分析
- 迭代加深搜索 codevs 2541 幂运算
- linux下利用elk+redis 搭建日志分析平台教程
- js this 闭包
- WPF-控件-ListView
- orderby group by
- Win8 IE10 只能以管理员打开的解决方法
- JAVA基础 (二)反射 深入解析反射机制
- 概率检索模型及BM25
- 在Eclipse如何实现在xml文件实现代码提示
- 关于Page_Load事件发生情况
- HTNL表单详解
- 《Spring Boot 入门及前后端分离项目实践》系列介绍
- Docker部署Jenkins测试环境