JavaScript——Array——reduce()方法应用

来源:互联网 发布:艾瑞数据 编辑:程序博客网 时间:2024/05/16 11:04

问题:
从某数据库接口得到如下值:

{ rows: [  ["Lisa", 16, "Female", "2000-12-01"],  ["Bob", 22, "Male", "1996-01-21"] ], metaData: [  {name: "name", note: ''},  {name: "age", note: ''},  {name: "gender", note: ''},  {name: "birthday", note: ''} ]}rows是数据,metaData是对数据的说明。现写一个函数,将上面的Object转化为期望的数组:[ {name: "Lisa", age: 16, gender: "Female", birthday: "2000-12-01"}, {name: "Bob", age: 22, gender: "Male", birthday: "1996-01-21"},]

解决代码:(应用reduce 方法 (Array) (JavaScript))

var data = {            rows: [                ["Lisa", 16, "Female", "2000-12-01"],                ["Bob", 22, "Male", "1996-01-21"]            ],            metaData: [{                name: "name",                note: ''            }, {                name: "age",                note: ''            }, {                name: "gender",                note: ''            }, {                name: "birthday",                note: ''            }]        }        var prev = [];        var result = data.rows.reduce(function(prev1, cur1) {            prev1.push(data.metaData.reduce(function(prev, cur, index) {                prev[cur.name] = cur1[index];                return prev;            }, {}))            return prev1;        }, []);        console.log(result);        console.log(result[0]);        console.log(result[1]);

Array.reduce(cal),reduce方法接受一个cal回调函数,Array中的每一个元素都会执行这个cal函数。cal函数可以接受多个参数,第一个参数是用作初始值来启动积累。第一次调用cal函数会将此值作为参数而非数组值提供。第二个参数就是Array中的每一个元素,第三个参数是元素对应的IndexFlag。

0 0
原创粉丝点击