【问题标题】:Find same Provider Ids and merge into one and also merge services of same provider id in one Array of Provider Object查找相同的提供者 ID 并合并为一个,并将相同提供者 ID 的服务合并到一个提供者对象数组中
【发布时间】:2020-08-29 06:38:40
【问题描述】:
{
    "success": true,
    "message": "successfully retrieved",
    "data": [
        {
            "providerId": 826172,
            "profile": null,
            "service": {
                "id": 1,
                "name": "Hair Cutting",
                "description": "This is to cut hairs",
                "serviceThumbnail": null,
                "defaultPriceInAED": 20,
                "defaultDurationInMin": 30
            }
        },
        {
            "providerId": 826173,
            "profile": null,
            "service": {
                "id": 2,
                "name": "Hair Coloring",
                "description": "This is to color hairs",
                "serviceThumbnail": null,
                "defaultPriceInAED": 20,
                "defaultDurationInMin": 30
            }
        },
        {
            "providerId": 826173,
            "profile": null,
            "service": {
                "id": 3,
                "name": "Nail Cutting",
                "description": "This is for Nail cutting service",
                "serviceThumbnail": null,
                "defaultPriceInAED": 20,
                "defaultDurationInMin": 30
            }
        }
    ]
}

【问题讨论】:

  • 请向我们展示您的尝试
  • 感谢评论问题已解决:)
  • 我需要相同的提供者 ID 服务对象将合并到一个对象中

标签: javascript mysql node.js json api


【解决方案1】:

您的问题很不清楚,您想要实现什么。似乎您想将providerId 及其数据分组(如果相同)。如果是这样,你可以试试这个:

var value = { "success": true, "message": "successfully retrieved", "data": [ { "providerId": 826172, "profile": null, "service": { "id": 1, "name": "Hair Cutting", "description": "This is to cut hairs", "serviceThumbnail": null, "defaultPriceInAED": 20, "defaultDurationInMin": 30 } }, { "providerId": 826173, "profile": null, "service": { "id": 2, "name": "Hair Coloring", "description": "This is to color hairs", "serviceThumbnail": null, "defaultPriceInAED": 20, "defaultDurationInMin": 30 } }, { "providerId": 826173, "profile": null, "service": { "id": 3, "name": "Nail Cutting", "description": "This is for Nail cutting service", "serviceThumbnail": null, "defaultPriceInAED": 20, "defaultDurationInMin": 30 } }, { "providerId": 826173, "profile": null, "service": { "id": 3, "name": "Nail Cutting 5", "description": "This is for Nail cutting service", "serviceThumbnail": null, "defaultPriceInAED": 20, "defaultDurationInMin": 30 } } ]};

var result = value.data.reduce((acc, elem)=>{
 getIndex = acc.findIndex(val=>val.providerId==elem.providerId);
 getIndex==-1 ?  (elem.service=[elem.service], acc.push(elem)) : acc[getIndex].service = [elem.service, ...acc[getIndex].service]
return acc; 
},[]);

console.log(result);

我希望它有所帮助。谢谢!

【讨论】:

  • 谢谢你帮我节省时间
【解决方案2】:

var value = { "success": true, "message": "successfully retrieved", "data": [ { "providerId": 826172, "profile": null, "service": { "id": 1, "name": "Hair Cutting", "description": "This is to cut hairs", "serviceThumbnail": null, "defaultPriceInAED": 20, "defaultDurationInMin": 30 } }, { "providerId": 826173, "profile": null, "service": { "id": 2, "name": "Hair Coloring", "description": "This is to color hairs", "serviceThumbnail": null, "defaultPriceInAED": 20, "defaultDurationInMin": 30 } }, { "providerId": 826173, "profile": null, "service": { "id": 3, "name": "Nail Cutting", "description": "This is for Nail cutting service", "serviceThumbnail": null, "defaultPriceInAED": 20, "defaultDurationInMin": 30 } }, { "providerId": 826173, "profile": null, "service": { "id": 3, "name": "Nail Cutting 5", "description": "This is for Nail cutting service", "serviceThumbnail": null, "defaultPriceInAED": 20, "defaultDurationInMin": 30 } } ]};

var result = value.data.reduce((acc, elem)=>{
 getIndex = acc.findIndex(val=>val.providerId==elem.providerId);
 getIndex==-1 ?  (elem.service=[elem.service], acc.push(elem)) : acc[getIndex].service = [elem.service, ...acc[getIndex].service]
return acc; 
},[]);

console.log(result);

【讨论】:

    猜你喜欢
    • 2019-04-04
    • 2015-06-04
    • 2014-11-19
    • 2022-06-24
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    相关资源
    最近更新 更多