问答

数组格式转换问题

作者:admin 2021-09-08 我要评论

var arr = [{name:'1',age:10},{name:'2',age:20},{name:'3',age:30}] var arr1 = {name:['1','2','3'],age:[10,20,30]} 如何把arr 转换成 arr1这样的。提供一下...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

var arr = [{name:'1',age:10},{name:'2',age:20},{name:'3',age:30}]

var arr1 = {name:['1','2','3'],age:[10,20,30]}

如何把arr 转换成 arr1这样的。提供一下思路也行

###
[{name:'1',age:10},{name:'2',age:20},{name:'3',age:30}].reduce((res, item) => {
    res.name.push(item.name);
    res.age.push(item.age); 
    return res; 
}, {name: [], age: []});
###
arrname = arr.map(item => item.name)
arrage = arr.map(item => item.age)
arr1 = { name:arrname, age:arrage }
###

777777777777777777777777.png

convertArray([{name:'1',age:10},{name:'2',age:20},{name:'3',age:30}])

function convertArray (list) {
  let query = {}
  list.forEach(item => {
    for(let key in item) {
      query[key] = query[key] || []
      query[key].push(item[key])
    }
  })
  return query
}
###
arr.reduce((res, cur) => {
    Object.keys(cur).forEach(key => {
        res[key] = res[key] || [];
        res[key].push(cur[key]);
    })
    return res;
}, {})
###
  1. 循环遍历arr
  2. 根据Object.keys拿到每个key
  3. 判断arr1中对应key是否有值
  4. 有就肯定是数组, push
  5. 没有就 设置成数组 [data]
###

先Object.keys取数组中所有key。然后遍历。

       let keys=Object.keys(arr[0])
       const data= keys.map(item=>{
          let b=arr.map(item1=>item1[item])
            return {[item]:b}
        })
###
var arr = [{name:'1',age:10},{name:'2',age:20},{name:'3',age:30}];
var arr1 = arr.reduce((result,current)=>{
    Object.getOwnPropertyNames(current).forEach((propertyName)=>{
        result[propertyName]=result[propertyName]||[];
        result[propertyName].push(current[propertyName]);
    });
    return result;
},{});
console.log(arr1);

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 数组格式转换问题

    数组格式转换问题

  • 子页面如何判断父页面方法加载完毕

    子页面如何判断父页面方法加载完毕

  • Node进程为什么不会自动退出呢?

    Node进程为什么不会自动退出呢?

  • 为什么监听3000端口以后,nodemon就不

    为什么监听3000端口以后,nodemon就不

腾讯云代理商
海外云服务器