首页 新闻 会员 周边

js怎么生成这样的数据?

0
悬赏园豆:10 [待解决问题]

原数据是这样

想生成这样的格式的数据

有什么好的想法?

原数据是动态的,每个数组里的字符不固定,后面一个是前面的子元素

石志凯的主页 石志凯 | 初学一级 | 园豆:184
提问于:2019-01-25 10:22
< >
分享
所有回答(6)
0

这种最好要后端实现,前端太麻烦了,我之前写过,只是我现在没那么多时间去回复

青青子衿619 | 园豆:300 (菜鸟二级) | 2019-01-25 10:47

好吧

支持(0) 反对(0) 石志凯 | 园豆:184 (初学一级) | 2019-01-25 11:27
0

我js功底不咋地,我感觉看明白思路,可以js直接拼接出来这个newData。前提是你的原数据要有一定的规律才行。比如,children上边第一个name的值一定是data中偶数索引?而且children下的是不是只能有两个name

一禅·小和尚 | 园豆:519 (小虾三级) | 2019-01-25 11:00

不是 都是动态的

支持(0) 反对(0) 石志凯 | 园豆:184 (初学一级) | 2019-01-25 11:31

@石志凯: 我知道是动态的,我上边意思是说,他们的规律是不是我所说一样。。。。如果连规律都没有,那程序没法实现动态构造出你要的结果。
如果你拿不准,请贴出更多可能的数据,不然没法出答案

支持(0) 反对(0) 一禅·小和尚 | 园豆:519 (小虾三级) | 2019-01-25 12:32
0

让后台生成此数据吧

ycyzharry | 园豆:25651 (高人七级) | 2019-01-25 11:20

好吧

支持(0) 反对(0) 石志凯 | 园豆:184 (初学一级) | 2019-01-25 11:31
0

你要和后端配合,给他说明数据要以怎样的形式展示,他明白了自然会返给你这个数据

你风致 | 园豆:2213 (老鸟四级) | 2019-01-25 11:37

这前台就是后台写的 他知道数据格式

支持(0) 反对(0) 石志凯 | 园豆:184 (初学一级) | 2019-01-25 11:39
0

这不是 json格式吗? 自己拼字符串

jqw2009 | 园豆:2439 (老鸟四级) | 2019-01-25 13:42
0

////////

var datas = [
    ['2018-10-21','aa', 'c1cc1'],
    ['2018-10-21','aea', 'c1cc'],
    ['2018-10-22','aa', 'cc1c'],
    ['2018-10-22','aea', 'cc1c'],
    ['2018-10-22','aa', '1c1cc'],
    ['2018-10-23','ara', '1cc1c'],
    ['2018-10-23','aat', '1c1cc'],
    ['2018-10-23','aya', '1ccc'],
    ['2018-10-23','aua', '11ccc'],
    ['2018-10-24','aia', '111ccc'],
    ['2018-10-24','aa', 'c11cc'],
    ['2018-10-24','aoa', 'c1cc'],
    ['2018-10-24','aa', 'c1c1c'],
    ['2018-10-24','aa', 'c1c1c'],
] ;

var temp = {};
for(var i in datas) {
    if(temp[datas[i][0]] == undefined) {
        temp[datas[i][0]] = {};
    }
    if(temp[datas[i][0]][datas[i][1]] == undefined) {
        temp[datas[i][0]][datas[i][1]] = {};
    }

    temp[datas[i][0]][datas[i][1]][datas[i][2]] = 0;
}
var newData = [];
for(var i in temp){
    var oneData = {
        'name': i,
        'children':[],
    };
    for(var j in temp[i]){
        var twoData={
            'name': j,
            'children':[],
        }
        for(var z in temp[i][j]){
            twoData['children'].push({'name':z})

        }
        oneData['children'].push(twoData)
    }
    newData.push(oneData);
}
console.log(newData)
电磁魔王喵喵 | 园豆:1339 (小虾三级) | 2019-01-25 15:32

捕捉喵喵一个

支持(0) 反对(0) 随风行云 | 园豆:936 (小虾三级) | 2019-01-25 16:24

不行 你把原数据写死了 那个是动态的 不过还是谢谢你

支持(0) 反对(0) 石志凯 | 园豆:184 (初学一级) | 2019-01-25 18:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册