//函數方法================
//模擬數據
let arr = [
{a:1,b:2,c:3},
{a:1,b:2,c:3},
{a:1,b:2,c:3}
]
//定義高階抽象函數
const map = (arry,fn) =>{
let result = [];
for(let value of arry){
result.push(fn(value))
}
return result;
}
//取出所需數據
let needArr = map(obj,(item)=>{
return {a:item.a,b:item.b}
})
//結果
[ {a: 1, b: 2},{a: 1, b: 2},{a: 1, b: 2}]
//非函數方法===============
//模擬數據
let arr = [
{a:1,b:2,c:3},
{a:1,b:2,c:3},
{a:1,b:2,c:3}
]
needArr = () =>{
let _arr = [];
for(let i =0;i<arr.length;i++){
let {a} = arr[i];
let {b} = arr[i];
let _obj = {a:a,b:b};
arr.push(_obj)
}
return _arr;
}
console.log(needArr());
//結果
[ {a: 1, b: 2},{a: 1, b: 2},{a: 1, b: 2}]
複製代碼
函數式思惟就是封裝可複用方法,經過for of 循環把數組每一項傳出,在以參數形式引入的函數中執行,返回想要的結果,函數方法複用性極高,並且當數據接入時候可修改操做靈活,而非函數方法,直接對數據進行操做,函數複用性下降,並且不方便的是靈活性太差,若是後臺傳入大量數據,邏輯會變得更加臃腫,很難維護。前端
把前端這個崗位形容成數據操做工,一點也不含糊,不管從剛開始的jq,Zepto,bootstrap等到後來的Angular,react,vue等新興框架的一統前端,其實無非是變着法的優化對數據的加工處理,以方便渲染頁面操做DOM,不斷的優化處理數據的能力而已,因此處理數據快,好,準成了現代前端框架的最基本的要求。在這樣的背景下,函數式編程方法變得尤其重要。vue