SOURCE

let arr = [
    {
        "cityNo": "1516588857",
        "cityName": "北区",
        "branchNo": "69174749",
        "branchName": "郑州",
        "gridNo": "66614",
        "gridName": "郑州中原"
    },
    {
        "cityNo": "1516588857",
        "branchNo": "69174749",
        "gridNo": "66613",
        "cityName": "北区",
        "branchName": "郑州",
        "gridName": "郑州CBD"
    },
    {
        "cityNo": "1516588856",
        "branchNo": "69174690",
        "gridNo": "66340",
        "cityName": "南区",
        "branchName": "武汉",
        "gridName": "武汉楚河汉街"
    },
    {
        "cityNo": "1516588857",
        "branchNo": "69174648",
        "gridNo": "66904",
        "cityName": "北区",
        "branchName": "沈阳",
        "gridName": "沈阳铁西"
    },
    {
        "cityNo": "1516588857",
        "branchNo": "69174684",
        "gridNo": "66194",
        "cityName": "北区",
        "branchName": "北京",
        "gridName": "北京CBD"
    },
    {
        "cityNo": "1516588858",
        "cityName": "东区",
        "branchNo": "69174687",
        "branchName": "上海",
        "gridNo": "66274",
        "gridName": "上海五角场"
    },
]
let newArr = []
for (var i = 0; i < arr.length; i++) {
    // console.log(arr[i])    
    newArr[0] = { value: "全部", id: "-1" }
    if (arr[i].cityName == "北区") {
        newArr[1] = { value: "北区", id: arr[i].cityNo, child: [] }
    } else if (arr[i].cityName == "南区") {
        newArr[2] = { value: "南区", id: arr[i].cityNo, child: [] }
    } else if (arr[i].cityName == "东区") {
        newArr[3] = { value: "东区", id: arr[i].cityNo, child: [] }
    } else {
        newArr[4] = { value: "西区", id: arr[i].cityNo, child: [] }
    }

}
for (var i = 0; i < arr.length; i++) {
    for (var k = 0; k < newArr.length; k++) {
        if (arr[i].cityName === newArr[k].value) {
            newArr[k].child[0] = { value: '全部', id: '-1' }
            newArr[k].child.push({ value: arr[i].branchName, id: arr[i].branchNo })
            let map = new Map()
            for (let item of newArr[k].child) {
                if (!map.has(item.id)) {
                    map.set(item.id, item);
                };
            }
            newArr[k].child = [...map.values()];
        }

    }
}
for (var i = 0; i < arr.length; i++) {
    for (var k = 0; k < newArr.length; k++) {
        if (newArr[k].child) {
            for (var p = 1; p < newArr[k].child.length; p++) {
                newArr[k].child[p].child = []

            }
        }

    }
}
for (var i = 0; i < arr.length; i++) {
    for (var k = 0; k < newArr.length; k++) {
        if (newArr[k].child) {
            for (var p = 1; p < newArr[k].child.length; p++) {
                newArr[k].child[p].child[0] = { value: '全部', id: '-1' }
                if (arr[i].branchName == newArr[k].child[p].value) {
                    newArr[k].child[p].child.push({ value: arr[i].gridName, id: arr[i].gridNo })
                }
            }
        }
    }
}
console.log(newArr)
console 命令行工具 X clear

                    
>
console