foreach()
map()
filter()
every()
foreach()//遍历
<script>
var array={
0:2,
1:1,
length:2,
currentValue:function(ii){
//参数是下标
//返回一个属性值
return array[ii]
},
index:function(ii){
//参数 下标
//当前正在处理的下标索引
//返回下标的索引
return ii;
},
array :function(){
//参数正在操作的数组
return this
},
forEach:function(ii){
for(var i=0;i<this.length;i++){
ii(this.currentValue(i),
this.index(ii),
this.array()
)
}
}
}
console.log(array.forEach(function(ii,iii,iiii){
console.log(ii)
console.log(iii)
console.log(iiii)
}))
// var i=[1,2,3]
// i.forEach(function(ii,iii,iiii){
// console.log(ii)
// console.log(iii)
// console.log(iiii)
// })
</script>
map()//返回一个性数组增值
<script>
var array = {
0: 2,
1: 1,
length: 2,
currentValue: function(ii) {
//参数是下标
//返回一个属性值
return this[ii]
},
index: function(ii) {
//参数 下标
//当前正在处理的下标索引
//返回下标的索引
return ii;
},
array: function() {
//参数正在操作的数组
return this
},
map: function(ii) {
var iii = {
length: 0,
}
for (var i = 0; i < this.length; i++) {
// 吧计算后的值赋值给性数组
iii[i] = ii(this.currentValue(i),
this.index(i),
this.array()
)
iii.length += 1;
}
return iii;
},
}
// 字左版本 bug
// return 这个关键字链我调用的函数都给我推出去了
var i = array.map(function(ii, iii, iiii) {
return ii * ii;
})
console.log(i)
// 标准版本
// var i=[1,2,3]
// var ii=i.map(function(x,iii,iiii){
// // console.log(ii)
// // console.log(iii)
// // console.log(iiii)
// return x*iii;
// })
// console.log(ii)
</script>
filter()//返回在区间范围只能的数组
<body>
<script>
var array = {
0: 2,
1: 1,
length: 2,
currentValue: function(ii) {
//参数是下标
//返回一个属性值
return this[ii]
},
index: function(ii) {
//参数 下标
//当前正在处理的下标索引
//返回下标的索引
return ii;
},
array: function() {
//参数正在操作的数组
return this
},
filter: function(ii) {
var iii = {
length: 0,
}
for (var i = 0; i < this.length; i++) {
// 是正的花就赋值 假的花就不复制
var bu= ii(this.currentValue(i),
this.index(i),
this.array()
)
if(bu){
iii[i]=this[i]
iii.length += 1;
}
}
return iii;
},
}
// 字左版本 bug
//
var i = array.filter(function(ii, iii, iiii) {
return ii<2;
})
console.log(i)
// 标准版本ii
// var i=[1,2,3]
// var ii= i.filter(function(ii,iii,iiii){
// console.log(ii)
// console.log(iii)
// console.log(iii)
// return ii<3;
// })
// console.log(ii)
</script>
</body>
every()//检测是否都能通过测试
<script>
var array = {
0: 2,
1: 1,
length: 2,
currentValue: function(ii) {
//参数是下标
//返回一个属性值
return this[ii]
},
index: function(ii) {
//参数 下标
//当前正在处理的下标索引
//返回下标的索引
return ii;
},
array: function() {
//参数正在操作的数组
return this
},
reduce: function(ii) {
var iii = {
length: 0,
}
for (var i = 0; i < this.length; i++) {
// 是正的花就赋值 假的花就不复制
var bu= ii(this.currentValue(i),
this.index(i),
this.array()
)
if(!bu){
return false
}
}
return true;
},
}
// 字左版本 bug
//
// var i = array.filter(function(ii, iii, iiii) {
// return ii<2;
// })
// console.log(i)
// 标准版本ii
// var i=[1,2,3]
// var ii= i.reduce(function(ii,iii,iiii){
// console.log(ii)
// console.log(iii)
// console.log(iii)
// return ii+iii;
// })
// console.log(ii)
</script>