请问怎么把一组数据转换为对象,属性全是数组

image.png

数据如上,通过name来切割出列数,列数作为对象的属性名,而属性值是 数据里每一条name含有属性名

                    比如上面的数据  应该是 {
                        1:[{1列1柜},{1列2柜},...,{1列10柜}],
                        2:[{2列1柜},{2列2柜},...,{2列10柜}],
                        3:[{3列1柜},{3列2柜},...,{3列10柜}],
                        4:[{4列1柜},{4列2柜},...,{4列8柜}],
                    } 
已解决 悬赏分:40 - 解决时间 2021-11-25 18:30
反对 0举报 0 收藏 0

回答2

最佳
  • @
    arr.reduce((pre,cur) => {
         let idx = cur['name'][0];
         pre[idx] = pre[idx] ? pre[idx] : []
         pre[idx].push({'name': cur.name})
         return pre        
    },{})
    支持 0 反对 0 举报
    2021-11-25 16:21
  • @

    遍历一下应该就可以了

    function getNameObj(arrs){
        let nameObj = {}
        arrs.forEach(arr=>{
            let arrName = arr.name.match(/^\d*/)[0]
            if(arrName){
                let obj  = arr.name
                if(!nameObj[arrName]){
                    nameObj[arrName] = []
                }
                nameObj[arrName].push(obj)
                
            }
        })
        return nameObj
    }
    支持 0 反对 0 举报
    2021-11-25 17:39