前言:本博客系列為學習后盾人js教程過程中的記錄與產出,如果對你有幫助,歡迎關注,點贊,分享。不足之處也歡迎指正,作者會積極思考與改正。
使用效果:
可以返回參數函數為真的值
//情景:實現從stu數組里面提取js成績大於60的項
let stu=[
{name:"張三",js:90},
{name:"李四",js:50},
{name:"王五",js:60},
];//定義數組
let newarr=stu.filter(function(item,index,arr0){//調用filter方法,傳入函數,若函數返回值為真,則返回該項
// console.log(index);
return item.js>60;//當每項元素的元素的js成績大於60時返回真
});
console.table(newarr);
參數說明:
參數名稱不重要,重要的是第幾個參數
參數 | 作用 |
---|---|
function | 執行方法,函數返回真的項會被收集 |
第一參數item | 指被調用函數stu的遍歷中的當前項{name:"張三",js:90} |
第二參數index | 指被調用函數stu的遍歷中的當前項的索引值0,1,2 |
第三參數arr | 指被調用函數stu |
方法原理解析:
//filter的實現原理
let stu=[
{name:"張三",js:90},
{name:"李四",js:50},
{name:"王五",js:60},
];
function filter1(arr,callback){//arr為數組,callback為函數
let newArr=[];
for(const value of arr){//遍歷數組
if(callback(value)===true){//將每個值放入回調函數,返回真執行
newArr.push(value);//將值加入數組
}
}
return newArr;//返回結果
}
console.log(filter1(stu,function(value){
return value.js>60;
}));
尾記:
有任何問題,歡迎私聊喲~~~
也可關注公眾號“詩與涼風”聯系作者哦~~