javascript - js数据结构转换的问题
PHP中文网
PHP中文网 2017-04-10 15:29:13
[JavaScript讨论组]

有这样一个数据结构

var arr=[
    {
        day:0,
        time:1
    },
    {
        day:0,
        time:2
    },
    {
        day:0,
        time:3
    },
    {
        day:1,
        time:1
    },
    {
        day:1,
        time:2
    },
    {
        day:1,
        time:3
    }
]

如何转换成这样的结构

{
    0:[1,2,3],
    1:[1,2,3]
}
PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
大家讲道理

可以解决,我先占坑,一会给你代码

var arr=[
        {
            day:0,
            time:1
        },
        {
            day:0,
            time:2
        },
        {
            day:0,
            time:3
        },
        {
            day:1,
            time:1
        },
        {
            day:1,
            time:2
        },
        {
            day:1,
            time:3
        },
        {
            day:2,
            time:3
        },

    ];
    function myFormat(a) {
        var newObj = {};
        for (var i = 0, len = a.length; i < len; i++) {
            if (!newObj.hasOwnProperty(a[i].day)) {
                newObj[a[i].day] = [];
            }
            newObj[a[i].day].push(a[i].time);
        }
        return newObj;
    }
    console.log(myFormat(arr));

大家讲道理

这不就是underscore.groupBy方法做的事儿嘛。。。

天蓬老师

你确定能var obj={{day:0,time:1}}?

天蓬老师
var obj={};
 for(var i=0;i<arr.length,i++){
   obj.i=arr[i]
}

你要是想修改成你说的那种 key:value 然后value是数组的话 你要调整数据的结构,你现在这个例子没办法转换的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号