var arr = ['A', 'B', 'C', 'D'];
//push:将参数添加到原数组末尾,并返回数组的长度
Array.prototype.push=function(){
for(var i=0; i
this[this.length]=arguments[i]
}
return this.length
}
arr.push('E')
console.log(arr)
//pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
Array.prototype.pop =function() {
var val;
for(var i = 0; i < this.length; i++){
if(i ==this.length - 1) {
val = this[i];
this.length-=1;
}
}
return val;
}
arr.pop()
console.log(arr)
//reverse:将数组反序
Array.prototype.reverse=function(){
var arr=[];
for(var i=this.length-1; i>=0;i--){
arr.push(this[i])
}
for(var i=0; i
this[i]=arr[i]
}
return this.length
}
arr.reverse()
console.log(arr)
//slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
Array.prototype.slice=function(){
var start=arguments[0];
var end=arguments[1];
var arr=[]
if(end){
for(vari=0; i
if(i>=start&&i<=end){
arr.push(this[i]);
}
}
returnarr;
}else{
for(vari=0; i
if(i>=start){
arr.push(this[i]);
}
}
returnarr;
}
}
b=arr.slice(1,3)
console.log(b)
//join('|'):将数组的元素组起一个字符串,以'|'为分隔符,省略的话则用默认用逗号为分隔符
Array.prototype.join=function(){
if(typeof arguments[0]!='string'){
join=','
}else{
join=arguments[0];
}
var val='';
for(var i=0; i
val+=(this[i]+join)
}
return val;
}
c=arr.join('|')
console.log(c)
//indexOf: 知道值查找坐标
Array.prototype.indexOf=function(){
for(var i=0; i
if(this[i]==arguments[0]){
return i
}
}
}
console.log(arr.indexOf('A'));
//shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
Array.prototype.shift=function(){
var arr=[];
var one=this[0];
for(var i=1; i
arr.push(this[i])
}
for(var i=0; i
this[i]=arr[i]
}
this.pop();
return one;
}
console.log(arr.shift())
console.log(arr)
//unshift:将参数添加到原数组开头,并返回数组的长度
Array.prototype.unshift=function(){
var arr=[];
for(i in this){
arr.push(this[i])
}
for(var i=0; i
this[i]=arguments[i];
}
for(var i=0; i
this.push(arr[i])
}
return this.length;
}
d=arr.unshift(-2,-1)
console.log(d)
console.log(arr)
js数组方法内部实现
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 上周五晚上看书,看到了js位移,就突然想到数组前面添加和删除元素是可以通过这个玩意实现的,实现了以后,就想着要么吧...
- 原文地址 前言 因为平时在写代码的过程中,有些算法会经常重复写,比如数组去重、数组抽取随机值等!虽然这些不是很难的...