我有一个场景,如果价格大于0,我需要从以下json复制报价(无价格):

const data = [
    {
        "id": "offer1",
        "Identifier": {
            "info": "some info for offer1",
            "value": "some string for offer1"
        },
        "Price": {
            "Total": 94.30
        }
    },  
    {
        "id": "offer2",
        "Identifier": {
            "info": "some info for offer2",
            "value": "some string for offer2"
        },
        "Price": {
            "Total": 0.0
        }
    },
    {
        "id": "offer3",
        "Identifier": {
            "info": "some info for offer3",
            "value": "some string for offer3"
        },
        "Price": {
            "Total": 48.50
        }
    }
];

我需要获得所有价格为>0并将它们放入另一个具有特定格式的数组中,预期结果如下所示:

const result = [
  {
    "id":"offer1",
    "reference":"offer1",
    "Identifier":{
      "info":"some info for offer1",
      "value":"some string for offer1"
    }
  },
  {
    "id":"offer3",
    "reference":"offer3",
    "Identifier":{
      "info":"some info for offer3",
      "value":"some string for offer3"
    }
  }
]

我做的第一步是过滤初始数据数组,以排除总数为0的报价.

const filteredOffers = data.filter(offer => offer.Price.Total > 0);

接下来我该怎么做才能得到预期的结果?

推荐答案

你可以映射新对象.

const
    data = [{ id: "offer1", Identifier: { info: "some info for offer1", value: "some string for offer1" }, Price: { Total: 94.3 } }, { id: "offer2", Identifier: { info: "some info for offer2", value: "some string for offer2" }, Price: { Total: 0 } }, { id: "offer3", Identifier: { info: "some info for offer3", value: "some string for offer3" }, Price: { Total: 48.5 } }],
    result = data
        .filter(({ Price: { Total } }) => Total > 0)
        .map(({ Price, ...o }) => ({ ...o, reference: o.id }));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Javascript相关问答推荐

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

如何禁用附加图标点击的v—自动完成事件

为什么当我解析一个promise时,输出处于挂起状态?

将字符串UTC Date转换为ngx—counting leftTime配置值的数字

当运行d3示例代码时,没有显示任何内容

构造HTML表单以使用表单数据创建对象数组

当Redux提供程序访问Reduxstore 时,可以安全地从Redux提供程序外部调用钩子?

Prisma具有至少一个值的多对多关系

在使用HighChats时如何避免Datatables重新初始化错误?

Angular 形式,从DOM中删除不会删除指定索引处的内容,但会删除最后一项

是否可以将Select()和Sample()与Mongoose结合使用?

在Odoo中如何以编程方式在POS中添加产品

是否可以将异步调用与useState(UnctionName)一起使用

当我点击一个按钮后按回车键时,如何阻止它再次被点击

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`

如何在Java脚本中对数据进行签名,并在PHP中验证签名?

Node.js API-queryAll()中的MarkLogic数据移动

顶点图使用组标签更新列之间的条宽

bootstrap S JS赢得了REACT中的函数/加载

P5play SecurityError:无法从';窗口';读取命名属性';Add';:阻止具有源的帧访问跨源帧