js将数组格式转换为另一种格式

求大神支招。有这样一个数组:

arr = [{"a":"1" ,      
        "b":[{
                "c":"12",
           },{
                "c":"13", 
           }]
        },
        {"a":"2" ,      
        "b":[{
                "c":"15",
           },{
                "c":"16", 
           }]
        }
  ]

希望转换为:

arr = [{"a":"1" ,      
        "b":[{
                "c":"12",
           }]
        },
        {"a":"1" ,      
        "b":[{
                "c":"13", 
           }]
        },
        {"a":"2" ,      
        "b":[{
                "c":"15",
           }]
        },{"a":"2" ,      
        "b":[{
                "c":"16", 
           }]
        }
  ]
阅读 2.1k
1 个回答

不太清楚,需求是哪些可变的,尝试用for写了一下

const arr = [
            {
                "a": "1",
                "b":
                    [
                        { "c": "12", },
                        { "c": "13", }
                    ]
            },
            {
                "a": "2",
                "b":
                    [
                        { "c": "15", },
                        { "c": "16", }
                    ]
            }
        ]

        array(arr)
        function array(arr) {
            arrNew = []
            for (let i = 0; i < arr.length; i++) {
                if (arr[i].b.length > 1) {
                    for (let j = 0; j < arr[i].b.length; j++) {
                        arrNew.push({
                            "a": arr[i].a,
                            "b": [arr[i].b[j]]
                        })
                    }
                }
            }
            console.log(arrNew)

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