当前位置:网站首页>【重构map】【重构filter】【重构Some】【重构reduce方法】【重构flat函数】
【重构map】【重构filter】【重构Some】【重构reduce方法】【重构flat函数】
2022-08-03 14:36:00 【勇敢*牛牛】
重构map
var arr = [1,3,4,5,5];
Array.prototype.myMap = function(callback,item){
var arr = [];
for(var i=0;i<this.length;i++){
var temp = callback(this[i],i,this);
arr.push(temp);
}
return arr;
}
arr = arr.myMap(function(item,index){
return item*2
})
console.log(arr);//[2, 6, 8, 10, 10]
</script>
重构filter
Array.prototype.myFilter = function(callback){
var arr = [];
for(var i=0;i<this.length;i++){
if(callback(this[i],i,this)){
arr.push(this[i]);
}
}
return arr
}
arr = arr.myFilter(function(item){
return item > 3
})
console.log(arr);//[4, 5, 5]
重构Some
Array.prototype.mySome = function(callback){
var arr = [];
for(var i=0;i<this.length;i++){
if(callback(this[i])){
return true;
}
}
return false
}
arr = arr.mySome(function(item){
return item > 7
})
重构reduce方法
Array.prototype.myReduce = function(callback,init){
var start = init ?? 1;
init = init ?? this[0];
for(var i=start;i<this.length;i++){
var init = callback(init,this[i])
}
return init;
}
var sulter = arr.myReduce(function(v,t){
return v+t;
})
重构flat函数
Array.prototype.myFlat = function(depth = 1){
if(depth == 0) return this;
console.log('this=',this);
return this.reduce((v,t)=>{
if(Array.isArray(t)){
return [...v,...t.myFlat(depth-1)]
}else{
return [...v,t]
}
},[])
}
arr= [1,2,3,3,[36,9,9,[0]]]
arr = arr.myFlat()
console.log(arr);//[1, 2, 3, 3, 36, 9, 9, Array(1)]
边栏推荐
- redis的使用方法
- 关于 vditor 可否同步飞书文档问题
- servlet与jsp区别_servlet和class的区别
- 基于ModelArts的动漫头像自动生成丨【华为云至简致远】
- PAT乙级-B1014 福尔摩斯的约会(20)
- System learning Shell regular expressions
- LARS (Least Angle Regression)
- How to use matlab to implement the piecewise function "recommended collection"
- PAT乙级-B1017 A除以B(20)
- Clickhouse填坑记3:Left Join改Right Join导致统计结果错误
猜你喜欢
随机推荐
项目管理:PMP和IPMP哪个更值得考?两个证书的区别在于哪里?
A high-performance creation book, ASUS Dreadnought Pro15 2022 is completely enough for daily photo editing and editing!
【问题】torch和torchvision对应版本
How to use redis
C语言将GLib库添加到CMake工程中
Detailed explanation of cloud hard disk EVS and how to use and avoid pits [HUAWEI CLOUD is simple and far]
redis的使用方法
PAT乙级-B1010 一元多项式求导(25)
数据分析(二)——numpy
连亏四个月,赚不回电费,预制菜经销商恐成“韭菜”?
atrace和systrace的基本使用方法
你没见过的《老友记》镜头,AI给补出来了|ECCV 2022
Linux安装Mysql的几种方法
正则表达式入门一
网络中的交换机和路由器
[The Beauty of Software Engineering - Column Notes] 36 | What exactly do DevOps engineers do?
HDU 1027 Ignatius and the Princess II(求由1-n组成按字典序排序的第m个序列)
系统学习Shell之正则表达式
Top 10 free proxy IP software_Domestic static IP proxy software
可视化数据库设计软件有哪些_数据库可视化编程