目录
一、概述
二、迭代方法
1、filter()
2、map() 方法
3、forEach() 方法
4、every() 和 some()方法
三、手写 filter()、forEach()、map()、every() 和 some() 方法都属于迭代方法——(中高级前端面试题)★★★★★
1、filter()
2、forEach()
3、map()
4、every()
5、some()
参考:https://blog.csdn.net/mChales_Liu/article/details/103201171#13%E3%80%81%E8%BF%AD%E4%BB%A3%E6%96%B9%E6%B3%95
filter()、forEach()、map()、every() 和 some() 方法都属于迭代方法。
let numArr = [1,2,3,4,5,4,3,2,1];
let filterResult1 = numArr.filter((item, index)=>{
return item<3;
})
console.log(filterResult1); // [1, 2, 2, 1]
let numArr = [1,2,3,4,5,4,3,2,1];
let mapResult1 = numArr.map((item, index)=>{
return item * 2;
})
console.log(mapResult1); // [2, 4, 6, 8, 10, 8, 6, 4, 2]
let numArr = [1,2,3,4,5,4,3,2,1];
numArr.forEach((item, index)=>{
// 对数组的一些操作
})
every() 和 some()方法都用于检查数组中的项是否满足某个条件:
// every() 方法
let numArr = [1,2,3,4,5,4,3,2,1];
let everyResult1 = numArr.every((item, index)=>{
return item>0;
})
let everyResult2 = numArr.every((item, index)=>{
return item>2;
})
console.log(everyResult1); // true
console.log(everyResult2); // false
// some() 方法
let numArr = [1,2,3,4,5,4,3,2,1];
let someResult1 = numArr.some((item, index)=>{
return item<0;
})
let someResult2 = numArr.some((item, index)=>{
return item<2;
})
console.log(someResult1); // false
console.log(someResult2); // false
Array.prototype.filter = function(fn){
if(typeof fn !== "function"){
throw "参数必须为函数"
}
// 获取要迭代的数组
let arr = this;
if(!Array.isArray(arr)){
throw "只能对数组使用forEach方法"
}
let result = [];
for(let index=0;index
Array.prototype.myForEach= function(fn){
// 获取要迭代的数组
let arr = this;
for(let i=0; i
Array.prototype.myMap = function(fn){
let newArr = [];
let arr = this;
for (let i=0; i{
return item * 2;
})
console.log(mapResult); // [2, 4, 6, 8, 10, 8, 6, 4, 2]
Array.prototype.myEvery= function(fn){
// 获取要迭代的数组
let arr = this;
for(let index=0;index
Array.prototype.mySome= function(fn){
let arr = this;
for(let index=0;index