*初级小白*~ 2022-08-19 15:09 采纳率: 97.9%
浏览 35
已结题

如何把data数据形式转为newData数据形式的数据?

如何把data数据形式转为newData数据形式的数据?


const data = {
        1: [{
            category: '水果',
            time: 12,
        }, {
            category: '护肤品',
            time: 1,
        }, {
            category: '水果',
            time: 0.2,
        }, {
            category: '零食',
            time: 2,
        }, {
            category: '水果',
            time: 3,
        }, {
            category: '护肤品',
            time: 1,
        }, ],
        2: [{
            category: '水果',
            time: 2,
        }, {
            category: '零食',
            time: 2,
        }, {
            category: '水果',
            time: 2.3,
        }, ],
        3: [{
            category: '水果',
            time: 2.1,
        }, ],
        4: [],
        5: [],
        6: [],
    }
    const newData = {
        1: [{
            category: '水果',
            time: 12,
            x:0,
        }, {
            category: '水果',
            time: 0.2,
            x:12,
        }, {
            category: '水果',
            time: 3,
            x:12.2,
        }, {
            category: '护肤品',
            time: 1,
            x:12.5,
        }, {
            category: '护肤品',
            time: 1,
            x:12.6,
        }, {
            category: '零食',
            time: 2,
            x:12.7,
        }, ],
        2: [{
            category: '水果',
            time: 2,
            x:0,
        }, {
            category: '水果',
            time: 2.3,
            x:2,
        }, {
            category: '零食',
            time: 2,
            x:4.3,
        }, ],
        3: [{
            category: '水果',
            time: 2.1,
            x:0,
        }, ],
    }
  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-08-19 15:21
    关注

    示例代码如下

    
        const data = {
            1: [{
                category: '水果',
                time: 12,
            }, {
                category: '护肤品',
                time: 1,
            }, {
                category: '水果',
                time: 0.2,
            }, {
                category: '零食',
                time: 2,
            }, {
                category: '水果',
                time: 3,
            }, {
                category: '护肤品',
                time: 1,
            },],
            2: [{
                category: '水果',
                time: 2,
            }, {
                category: '零食',
                time: 2,
            }, {
                category: '水果',
                time: 2.3,
            },],
            3: [{
                category: '水果',
                time: 2.1,
            },],
            4: [],
            5: [],
            6: [],
        }
        const newData = {};
        for (let key in data) {
            if (data[key].length == 0) continue;
            newData[key] = [];
            let kv = { };
            for (let item of data[key]) {
                let x = kv[item.category] || 0;
                newData[key].push({ category: item.category, time: item.time, x: x });
                x += item.time;
                kv[item.category] = x;
            }
            //排序,将同类型放到一起
            let keys = Object.keys(kv); console.log(keys)
            newData[key].sort((a, b) => {
                let aIndex = keys.findIndex(x => x == a.category), bIndex = keys.findIndex(x => x == b.category);
                return aIndex - bIndex;
            })
        }
        console.log(newData)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月28日
  • 已采纳回答 8月20日
  • 创建了问题 8月19日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题