如何对一个数组里面的多个对象里的某个属性名,然后根据某个属性名获取属性值,就把属性值加入到一个数组里面?
我想要下面的案例如下:
{ "data":[ { "name":[ "00", "01", "02", "03" ], "age":[ "20", "30", "25", "28" ] } ] }
处理之前代码如下:
var arr = [ { name: '00', age: 20 }, { name: '01', age: 30 }, { name: '02', age: 25 }, { name: '03', age: 28 }, ]
已解决
悬赏分:50
- 解决时间 2021-11-27 04:57
点赞 0反对 0举报 0
收藏 0
分享 0
回答2
最佳
-
var arr = [ { name: '00', age: 20 }, { name: '01', age: 30 }, { name: '02', age: 25 }, { name: '03', age: 28 }, ] var res = arr.reduce((res,v) => { Object.keys(v).forEach(key => { const value = v[key]; if(res[key]) res[key].push(value); else res[key] = [value]; }) return res; }, {}); // 等同 // var res = arr.reduce((res,v) => { // return Object.keys(v).reduce((res,key) => { // const value = v[key]; // if(res[key]) res[key].push(value); // else res[key] = [value]; // return res; // }, res) // }, {});
支持 0 反对 0 举报2021-11-26 08:29
-
var o = {} arr.map( obj => { for (let [k, v] of Object.entries(obj)) { o[k] = o[k] || [] o[k].push(v) } }) console.log(o)
输出
{ name: [ '00', '01', '02', '03' ], age: [ 20, 30, 25, 28 ] }
支持 0 反对 0 举报2021-11-26 09:17