SOURCE

const prod_list = [
    {
        "check_detail_id": 160,
        "spu_id": 19918787,
        "sku_id": 1002355,
        "goods_name": "多规格测试",
        "spu_type_id": 499,
        "spu_type_name": "未分类",
        "brand_id": 271,
        "brand_name": "可口可乐",
        "profit_type": 1,
        "sku_no": "P220607035840662",
        "sku_code": "BM19918787311002355",
        "spec_define_tuple": "[{\"specs_key_id\":82,\"specs_key_name\":\"尺码\",\"specs_value_id\":230,\"specs_value_name\":\"M\"},{\"specs_key_id\":83,\"specs_key_name\":\"颜色\",\"specs_value_id\":233,\"specs_value_name\":\"红色\"},{\"specs_key_id\":84,\"specs_key_name\":\"内存\",\"specs_value_id\":235,\"specs_value_name\":\"64\"}]",
        "specs_detail": "M,红色,64",
        "unit_id": 1491,
        "unit_name": "包",
        "sell_stock_num": 0,
        "actual_invent_num": 0,
        "actual_check_num": 1,
        "profit_type_name": "盘盈",
        "profit_num": 1,
        "profit_price": 0,
        "photo_url": "jpeg",
        "head_photo_url": "jpeg",
        "goods_multi_type": 2,
        "cost_money": 0
    },
    {
        "check_detail_id": 161,
        "spu_id": 19918787,
        "sku_id": 1002356,
        "goods_name": "多规格测试",
        "spu_type_id": 499,
        "spu_type_name": "未分类",
        "brand_id": 271,
        "brand_name": "可口可乐",
        "profit_type": 1,
        "sku_no": "P220607772211494",
        "sku_code": "BM19918787611002356",
        "spec_define_tuple": "[{\"specs_key_id\":82,\"specs_key_name\":\"尺码\",\"specs_value_id\":230,\"specs_value_name\":\"M\"},{\"specs_key_id\":83,\"specs_key_name\":\"颜色\",\"specs_value_id\":233,\"specs_value_name\":\"红色\"},{\"specs_key_id\":84,\"specs_key_name\":\"内存\",\"specs_value_id\":236,\"specs_value_name\":\"128\"}]",
        "specs_detail": "M,红色,128",
        "unit_id": 1491,
        "unit_name": "包",
        "sell_stock_num": 0,
        "actual_invent_num": 0,
        "actual_check_num": 2,
        "profit_type_name": "盘盈",
        "profit_num": 2,
        "profit_price": 0,
        "photo_url": "jpeg",
        "head_photo_url": "jpeg",
        "goods_multi_type": 2,
        "cost_money": 0
    },
    {
        "check_detail_id": 162,
        "spu_id": 19918787,
        "sku_id": 1002357,
        "goods_name": "多规格测试",
        "spu_type_id": 499,
        "spu_type_name": "未分类",
        "brand_id": 271,
        "brand_name": "可口可乐",
        "profit_type": 1,
        "sku_no": "P220607510996235",
        "sku_code": "BM19918787381002357",
        "spec_define_tuple": "[{\"specs_key_id\":82,\"specs_key_name\":\"尺码\",\"specs_value_id\":230,\"specs_value_name\":\"M\"},{\"specs_key_id\":83,\"specs_key_name\":\"颜色\",\"specs_value_id\":234,\"specs_value_name\":\"黑色\"},{\"specs_key_id\":84,\"specs_key_name\":\"内存\",\"specs_value_id\":235,\"specs_value_name\":\"64\"}]",
        "specs_detail": "M,黑色,64",
        "unit_id": 1491,
        "unit_name": "包",
        "sell_stock_num": 0,
        "actual_invent_num": 0,
        "actual_check_num": 3,
        "profit_type_name": "盘盈",
        "profit_num": 3,
        "profit_price": 0,
        "photo_url": "1",
        "head_photo_url": "2",
        "goods_multi_type": 2,
        "cost_money": 0
    },
    {
        "check_detail_id": 163,
        "spu_id": 19918787,
        "sku_id": 1002358,
        "goods_name": "多规格测试",
        "spu_type_id": 499,
        "spu_type_name": "未分类",
        "brand_id": 271,
        "brand_name": "可口可乐",
        "profit_type": 1,
        "sku_no": "P220607409274595",
        "sku_code": "BM19918787781002358",
        "spec_define_tuple": "[{\"specs_key_id\":82,\"specs_key_name\":\"尺码\",\"specs_value_id\":230,\"specs_value_name\":\"M\"},{\"specs_key_id\":83,\"specs_key_name\":\"颜色\",\"specs_value_id\":234,\"specs_value_name\":\"黑色\"},{\"specs_key_id\":84,\"specs_key_name\":\"内存\",\"specs_value_id\":236,\"specs_value_name\":\"128\"}]",
        "specs_detail": "M,黑色,128",
        "unit_id": 1491,
        "unit_name": "包",
        "sell_stock_num": 0,
        "actual_invent_num": 0,
        "actual_check_num": 4,
        "profit_type_name": "盘盈",
        "profit_num": 4,
        "profit_price": 0,
        "photo_url": "jpeg",
        "head_photo_url": "jpeg",
        "goods_multi_type": 2,
        "cost_money": 0
    }
]
// 批量删除对象某个数据
function delObjKeys(obj, keys) {
    keys.map((key) => {
        delete obj[key]
    })
    return obj
}
// 对编辑数据进行处理 组合数组
function combinedArrays(data) {
    // 需要删除的key
    const delKey = [
        'sku_id',
        'specs_list',
        'check_detail_id',
        'detail_remarks',
        'specs_detail',
        'spec_define_tuple'
    ]
    let combinedArr = data.reduce((prev, cur) => {
        const { spu_id, spec_define_tuple, goods_multi_type } = cur
        let specs_list = []
        // 自行处理后端返回的格式数据
        if (spec_define_tuple) {
            specs_list = JSON.parse(spec_define_tuple).map(spec => ({
                value_name: spec.specs_value_name,
                value_id: spec.specs_value_id,
                key_id: spec.specs_key_id,
                key_name: spec.specs_key_name
            }))
        }
        const item = {
            ...cur,
            specs_list
        }
        const exist = prev.find(spec => spec.spu_id === spu_id)
        if (exist) {
            exist.customCheckSpecArr.push(item)
        } else {
            if (goods_multi_type === 2) {
                const params = {
                    ...item,
                    customCheckSpecArr: [item]
                }
                prev.push(delObjKeys({ ...params }, delKey))
            } else {
                prev.push(cur)
            }
        }
        return prev
    }, [])
    console.log('combinedArr', combinedArr)
    return combinedArr
}

combinedArrays(prod_list)
console 命令行工具 X clear

                    
>
console