js数据结构重组

有如下数据结构。


e   test1
b   test2
c   test2
i   test3
d   test3
f   test3
k   test3
h   test3

左边是字段1(值),右边是字段2(属性名)




把属性名进行去重,然后把左侧的值归并到指定的属性名下,如下格式:

[
    {
        category: 'test1',
        arr: ['e']
    },
    {
        category: 'test2',
        arr: ['b','c']
    },
    {
        category: 'test3',
        arr: ['i','d','k','f','h']
    }
]


我的思路,遍历数组,已经拿到了属性值的数组,形如
[
    {
        category: 'test1'
    },
    {
        category: 'test2'
    },
    {
        category: 'test3'
    }
].
有啥思路方法获取同属性数组然后放到对应的字段名下?
阅读 1.9k
1 个回答

这个不难啊,你可以在获取属性数组的时候就新建一个map, 形如:

var cate = new Map()
cate.set('test1', 0)
cate.set('test2', 1)
cate.set('test3', 2)

然后去遍历原数组:

// 属性数组
prop = [
    {
        category: 'test1',
        arr: []
    },
    {
        category: 'test2',
        arr: []
    },
    {
        category: 'test3',
        arr: []
    }
]

// 假设原数组为二维数组
for (i in categorys) {
  prop[cate[categorys[i][1]].arr.push(lecategorys[i][0])
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题