概述
forEach(遍历)
Array.prototype.each = function(fn){
for(let i = 0; i < this.length; i++){
fn(this[i],i,this);
}
}
push(尾部添加一个或多个,返回数组长度)
Array.prototype.push = function(){
for(item in arguments){
this[this.length] = item;
}
return this.length;
}
pop(尾部删除一个元素,返回删除元素)
Array.prototype.pop = function(){
if(this.length == 0){
return;
}
let value = this[this.length - 1];
this.length -= 1;
return value;
}
unshift(头部添加)
Array.prototype.unshift = function(){
let result = [];
for(let index in arguments){
result[index] = arguments[index];
}
for(let item of this){
result[result.length] = item;
}
this.length = 0;
for(let index in result){
this[index] = result[index];
}
return this.length;
}
shift(头部删除)
Array.prototype.shift = function(){
let temp = [];
for(let index in this){
temp[index] = this[index];
}
this.length = 0;
console.log(temp[0],'temp')
for(let i = 0; i < temp.length - 1; i++){
this[i] = temp[i + 1];
}
return temp[0];
}
every(判断数组元素是否都满足指定的函数)
Array.prototype.every = function(fn){
for(let i = 0;i < this.length; i++){
if(!fn(this[i],i,this)) return false;
}
return true;
}
some(判断数组是否有元素满足指定的元素)
Array.prototype.some = function(fn){
for(let i = 0;i < this.length;i++){
if(fn(this[i],i,this)) return true;
}
return false;
}
filter(过滤)
Array.prototype.filter = function(fn){
let reuslt = [];
for(let i = 0;i < this.length;i++){
if(fn(this[i])) reuslt.push(this[i]);
}
return reuslt;
}
isArray(判断某对象是否是数组)
Array.prototype.isArray = function(){
return Object.prototype.toString.call(value) === '[object Array]';
}
concat(数组拼接)
Array.prototype.concat = function(){
let reuslt = this;
if(arguments.length != 0){
for(let item of arguments){
if(Object.prototype.toString.call(item) === '[object Array]'){
for(let items of item){
reuslt[reuslt.length] = items;
}
}else{
reuslt[reuslt.length] = item;
}
}
}
console.log(reuslt)
return reuslt;
}
copyWithin(把数组的一部分元素拷贝到另一部分位置上)
Array.prototype.copyWithin = function(targt,star = 0,end = this.length){
for(let i = targt;i <= (end - star);i++){
this[i] = this[star];
star++;
}
return this;
}
fill (固定值填充数组)
Array.prototype.fill = function(value,star = 0,end = this.length){
for(let i = star;i < (end - star); i++){
this[i] = value;
}
return this;
}
find(返回数组中满足提供的测试函数的第一个元素的值。否则返回undefined )
Array.prototype.find = function(fn){
for(let i = 0; i < this.length;i++){
if(fn(this[i],i,this)) return this[i];
}
return;
}
findIndex(返回满足第一个指定函数元素的下标)
Array.prototype.find = function(fn){
for(let i = 0; i < this.length;i++){
if(fn(this[i],i,this)) return i;
}
return -1;
}
includes(数组是否包含一个指定值)
Array.prototype.includes = function(value, fromIndex = 0){
for(let i = fromIndex; i < this.length; i++){
if(this[i] === value){
return true;
}
}
return false;
}
join
Array.prototype.join = function(separator){
if(!this.length){
return ''
}else if(this.length === 1){
console.log(1)
return this[0].toString();
}else{
let str = '';
for (var i = 0; i < this.length; i++) {
str += this[i] + `${i < this.length - 1 ? separator : ''}`;
}
return str;
};
}
先写到这,后续再补,写的不好,多多指教。
最后
以上就是悲凉夕阳为你收集整理的JS数组常用方法底层你知道多少的全部内容,希望文章能够帮你解决JS数组常用方法底层你知道多少所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复