抽取数组的对象元素中的键值,数组对象排序

目录

一、取对象中键、值的api

二、示例1:

         三、示例2:

四、数组对象排序


一、取对象中键、值的api

        Object.values() ,Object.keys()

  // 法一
      const data1 = [
            {
                qw: 'one',
                group: 'Robocar',
                suc_rate: 0

            },
            {
                'qe': 'two'
            },
            {
                'qr': 'three'
            }

        ]

        // for (var i of data1) {
        //     console.log(i);
        //     for (var k in i) {
        //         console.log('键:' + k)
        //         console.log('值:' + i[k])
        //     }
        // }


// 法二
        const data = [
            {
                data: [
                    { group: 'Mulecar', suc_rate: 100 },
                    { group: null, suc_rate: 100 },
                    { group: 'Devcar', suc_rate: 75 },
                    { group: 'Robocar', suc_rate: 0 },
                    { group: 'Robocar', suc_rate: 0 },
                    { group: 'Robocar', suc_rate: 0 },
                ],
                operator: 'download',
            },
            {
                data: [
                    { group1: 'Robocar', suc_rate1: 100 },
                    { group: 'Devcar', suc_rate: 100 },
                ],
                operator: 'deploy',
            },
        ]

        data.map((item) => {
            item.operator === 'download' &&
                item.data.map((v,) => {
                    // console.log(v)          
                    console.log(Object.values(v));                
                })
        })

二、示例1:

var data = [
  {
    "data": [
      {
        "business_type": "Robocar",
        "count": 0,
        "p_index": 0
      },
      {
        "business_type": "TMUS",
        "count": 0,
        "p_index": 1
      },
      {
        "business_type": "Devcar",
        "count": 0,
        "p_index": 2
      },
    ],
    "time": "2022-05-17"
  },
  {
    "data": [
      {
        "business_type": "Robocar",
        "count": 0,
        "p_index": 0
      },
      {
        "business_type": "TMUS",
        "count": 1,
        "p_index": 1
      },
    ],
    "time": "2022-05-16"
  },
  {
    "data": [
      {
        "business_type": "Robocar",
        "count": 0,
        "p_index": 0
      },
      {
        "business_type": "TMUS",
        "count": 6,
        "p_index": 1
      },
    ],
    "time": "2022-05-15"
  }
];

// output
// ['2022-05-17', '2022-05-16', '2022-05-15']
// ['Robocar', 'TMUS', 'Devcar', 'L_acar', 'L_bcar', 'WLINGS', 'L_bcar_Deliver']
// [[0,1,3]....[7,11,65]]

 // 正确处理
 const formatHeat = (data) => {
    var timeList = [];
    var businessTypeList = [];
    var valueList = [];
    data.forEach((timeDataList, data3Index) => {
      // 容错
      const { data, time } = timeDataList || {};
      time && timeList.push(time);

      data.forEach(dataItem => {
        // 只需要取一次
        const { business_type = '', p_index, count } = dataItem;
        if (data3Index === 0) {
          business_type && businessTypeList.push(business_type);
        }
        valueList.push([data3Index, p_index, count]);
      });
    });
    return [timeList, businessTypeList, valueList]
  }
// 错误方法
  // const formatHeat = (data) => {
  //   const count = [], day = []
  //   let business_type = []
  //   data.map((itemData, i) => {
  //     day.push(itemData.time)
  //     console.log(day); // 
  //     business_type = []
  //     itemData.data.map((item, j) => {

  //       business_type.push(item.business_type);
  //       // count[i * j] = [];
  //       count.push(i, j, item.count);
  //     });
  //     console.log(business_type);  // 
  //     // return business_type
  //   });
  //   // console.log( count);
  //   return day, count;
  // }
  // console.log(updData);
  // const [business_type, day, count] = formatHeat(updData)
  // console.log(day, business_type, count);

 三、示例2:

var data = [
  {
    "c_time": "2022-05-15 00:00:00",
    "data": []
  },
  {
    "c_time": "2022-05-16 00:00:00",
    "data": [
      {
        "c_hour": "00:00:00",
        "module": "all",
        "online": 0,
        "online_rate": 0.0
      },
      {
        "c_hour": "04:00:00",
        "module": "all",
        "online": 0,
        "online_rate": 0.0
      },
      {
        "c_hour": "08:00:00",
        "module": "all",
        "online": 0,
        "online_rate": 0.0
      },
      {
        "c_hour": "12:00:00",
        "module": "all",
        "online": 0,
        "online_rate": 0.0
      },
    ]
  }
];



// 正确方法

function transformData(data) {
  const day = {};
  data.forEach((itemData) => {
    day[itemData.c_time] = {
      x: [],
      y: [],
      z: [],
    }
    itemData.data.forEach(item => {
      day[itemData.c_time].x.push(item.c_hour);
      day[itemData.c_time].y.push(item.online);
      day[itemData.c_time].z.push(item.online_rate);
    });
  });
  return day;
}

function transformData2(data) {
  const day = [];
  data.forEach((itemData, index) => {
    day[index] = [
      [],
      [],
      [],
    ];
    itemData.data.forEach(item => {
      day[index][0].push(item.c_hour);
      day[index][1].push(item.online);
      day[index][2].push(item.online_rate);
    });
  });
  return day;
}


const res = transformData2(data);
console.log('res', res);
// 错误方法
  const formatline = (Data,) => {
    const Datas = []
    const axisData = []
    const x = [], y = [], r = []
    Data?.map((item2) => {
      item2?.data.map((item) => {
        x.push(item.c_hour)
        y.push(item.online)
        r.push(item.online_rate)
        axisData.push(x, y, r)
        return x, y, r
      })
      console.log(x, item2.c_time);
      axisData.push(x, y, r)
    })
    console.log(axisData);
    Datas.push(axisData)
    console.log(Datas);
    return (Datas);
  }

四、数组对象排序

var arr = [
    {name:'zopp',age:0},
    {name:'gpp',age:18},
    {name:'yjj',age:8}
];

function compare(property){
    return function(a,b){
        return a[property] - b[property];
    }
}
console.log(arr.sort(compare('age')))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白目

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值