javascript - 复制具有特定值的对象

标签 javascript

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

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"
    }
  }
]

我所做的第一步是过滤初始数据数组以排除 Total = 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 - 复制具有特定值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71414825/

相关文章:

javascript - 将字符串按照指定长度分割成数组

javascript - React - Material UI Typography 如何将长字符串分成多行

php - 在javascript中使用PHP变量

javascript - Node.js 中的异步性质

javascript - 如何在 Algolia 即时搜索中实现多个分页实例?

javascript - Python 和 jQuery.ajax 调用之间的进度更新

javascript - 在 Javascript 中查找成对的正方形

javascript - 我无法在React上正确调用其他组件中的模态组件

javascript - 在一个 js 文件中预编译所有 handlebars 模板文件时出错

javascript - 光标 foreach 按时间间隔