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

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柜}],
                    } 
阅读 2.1k
2 个回答
arr.reduce((pre,cur) => {
     let idx = cur['name'][0];
     pre[idx] = pre[idx] ? pre[idx] : []
     pre[idx].push({'name': cur.name})
     return pre        
},{})

遍历一下应该就可以了

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
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题