js函数式编程学习(二)=> json数据取值

316 阅读1分钟

对获取的json数据进行统一加工


//函数方法================
//模拟数据
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,不断的优化处理数据的能力而已,所以处理数据快,好,准成了现代前端框架的最基本的要求。在这样的背景下,函数式编程方法变得尤为重要。